New windows are created offscreen

Bug #1425690 reported by Simon Steinbeiß on 2015-02-25
36
This bug affects 7 people
Affects Status Importance Assigned to Milestone
ubiquity (Ubuntu)
High
Unassigned
xfwm4 (Ubuntu)
Undecided
Unassigned

Bug Description

When running ubiquity-dm from Xubuntu's Beta1 Vivid image, any new windows created within it are positioned offscreen. This means that the final window informing you that your installation is finished doesn't show up for the user.

As far as I have been able to debug this, some window-manager hints are set incorrectly by Xfwm4, it's not clear though as to why as all information I could gather from xrandr and xprop otherwise seemed fine. To be more concrete, this is the offending hint:
_NET_WORKAREA(CARDINAL) = 1024, 28, 0, 740

It should read like this instead:
_NET_WORKAREA(CARDINAL) = 0, 28, 1024, 740

I'm not sure what causes this offset, the ubiquity-panel seems to set its STRUTS ok and Xfwm4 seems to behave fine in the live session. I'll attach a few logs below.

"xprop" (of a new instance of xfce4-terminal that was created offscreen)
http://paste.ubuntu.com/10414211/

"xprop -root" (in the offending ubiquity-dm session)
http://paste.ubuntu.com/10414440/

"/var/log/Xorg.0.log"
http://paste.ubuntu.com/10413856/

"xrandr"
http://paste.ubuntu.com/10413911/

Related branches

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ubiquity (Ubuntu):
status: New → Confirmed
Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
http://iso.qa.ubuntu.com/qatracker/reports/bugs/1425690

tags: added: iso-testing
Alistair Buxton (a-j-buxton) wrote :

The problem is caused by Ubiquity sets up the _WM_STRUT and _WM_STRUT_PARTIAL.

It does :

set_strut(GTK_WINDOW(win), width, 0, allocation.height, allocation.height, 0, width);

and these values are put in LEFT, LEFT_START_Y, LEFT_END_Y, TOP, TOP_START_X, START_END_X respectively. It also puts LEFT and TOP in _WM_STRUTS. So they end up like this:

_NET_WM_STRUT_PARTIAL(CARDINAL) = 1024, 0, 28, 0, 0, 28, 0, 0, 0, 1024, 0, 0
_NET_WM_STRUT(CARDINAL) = 1024, 0, 28, 0

This kind of makes sense for the partial struts because the top strut and the left strut cover the exact same screen area. However, if the WM only looks at _WM_STRUT then it sees the left strut as covering the entire screen.

It looks like xfwm4 does not understand partial struts at all, so it sets up the _NET_WORKAREA as having no space at all. Further, it looks like recent changes in xfwm4 window positioning code mean that it only recently started honouring _NET_WORKAREA at all. So now windows get pushed entirely off the screen, because the WM believes there's no space on it.

http://bazaar.launchpad.net/~ubuntu-installer/ubiquity/trunk/view/head:/src/panel/panel.c#L249

http://bazaar.launchpad.net/~ubuntu-installer/ubiquity/trunk/view/head:/src/panel/panel.c#L56

http://git.xfce.org/xfce/xfwm4/tree/src/workspaces.c#n519

Changed in ubiquity (Ubuntu):
status: Confirmed → In Progress
importance: Undecided → High
Alistair Buxton (a-j-buxton) wrote :
Simon Steinbeiß (ochosi) wrote :

This bug is resolved with the package xfwm4 4.12.0-0ubuntu1.

Upstream the relevant commits responsible for fixing this are:
http://git.xfce.org/xfce/xfwm4/commit/?id=8c4e805ecdb5916140c888b30e8fa773334beb6e
http://git.xfce.org/xfce/xfwm4/commit/?id=58f9f51d1f438dcaa208937314c9d61bb33d1574

Changed in xfwm4 (Ubuntu):
status: New → Fix Released
Changed in ubiquity (Ubuntu):
status: In Progress → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Related blueprints