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.


** Patch added: "Patch for qtbase"
   
https://bugs.launchpad.net/webapps-sprint/+bug/1564767/+attachment/4622777/+files/xcb_fix_parent_screen_of_embedded_windows.patch

** Also affects: qtbase-opensource-src (Ubuntu)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1564767

Title:
  Wrong size of embedded window

To manage notifications about this bug go to:
https://bugs.launchpad.net/webapps-sprint/+bug/1564767/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to