Wrong size of embedded window

Bug #1564767 reported by Alberto Mardegan
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
webapps-sprint
Fix Released
Critical
Alberto Mardegan
qtbase-opensource-src (Ubuntu)
Fix Released
Critical
Timo Jyrinki

Bug Description

When creating an online account in Xenial, the embedded webview is not properly resized to fill up the embedder's area (see attached screenshot).

I'll investigate to find out whether this is a problem with the window manager, or with the XEMBED implementation in Gdk or Qt; but meanwhile, I'll try to apply a workaround in unity-control-center-signon.

Tags: patch
Revision history for this message
Alberto Mardegan (mardy) wrote :
Alberto Mardegan (mardy)
Changed in gnome-control-center-signon (Ubuntu):
importance: Undecided → Critical
Changed in webapps-sprint:
status: New → In Progress
importance: Undecided → Critical
assignee: nobody → Alberto Mardegan (mardy)
Changed in gnome-control-center-signon (Ubuntu):
assignee: nobody → Alberto Mardegan (mardy)
Changed in webapps-sprint:
milestone: none → sprint-20
Revision history for this message
Alberto Mardegan (mardy) wrote :

It looks like the bug is in QtBase: in the XCB plugin, the handleConfigureNotifyEvent() method initially wants to find out what is the new screen for the window, but due to a bug, it gets a NULL screen and decides to return from the function without processing the size changes. The reason for the failure (that is, the reason why we get NULL as a screen) is that the parentScreen() method doesn't take foreign windows into account: when we are embedding windows with the XEMBED protocol, the parent window is the embedder, which might live in another process; Qt does not know anything about this window other than its numeric ID, meaning that it doesn't know its screen either.

Therefore, we need to special-case these windows, and make sure that parentScreen() returns a sensible value.

Note that the patch doesn't need upstreaming: the Qt 5.6 code is already quite different (it doesn't even call the parentScreen() method here) and might be already fine. I'll test it with a local build, and report a bug to the Qt bugtracker in case.

Changed in qtbase-opensource-src (Ubuntu):
status: New → In Progress
assignee: nobody → Timo Jyrinki (timo-jyrinki)
importance: Undecided → Critical
Alberto Mardegan (mardy)
no longer affects: gnome-control-center-signon (Ubuntu)
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "Patch for qtbase" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

(this is waiting for testing in a silo since yesterday)

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package qtbase-opensource-src - 5.5.1+dfsg-16ubuntu6

---------------
qtbase-opensource-src (5.5.1+dfsg-16ubuntu6) xenial; urgency=medium

  [ Alberto Mardegan ]
  * debian/patches/xcb_fix_parent_screen_of_embedded_windows.patch:
    - Fix wrong size of embedded window. Fixed in upstream Qt 5.6.
      (LP: #1564767)

 -- Timo Jyrinki <email address hidden> Tue, 05 Apr 2016 13:59:17 +0000

Changed in qtbase-opensource-src (Ubuntu):
status: In Progress → Fix Released
David Barth (dbarth)
Changed in webapps-sprint:
milestone: sprint-20 → sprint-19
milestone: sprint-19 → sprint-21
Alberto Mardegan (mardy)
Changed in webapps-sprint:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.