GNOME Bugzilla – Bug 636842
Panel does not set strut property correctly when adjacent to another screen
Last modified: 2020-03-17 01:51:22 UTC
Hi, It seems that the gnome panel does not set a valid _NET_WM_STRUT or _NET_WM_STRUT_PARTIAL property when there is another screen directly adjacent to the panel. This messes up maximization behavior with a number of window managers, including metacity, mutter and compiz. Output of xprop grep for _NET_WM_STRUT and _NET_WM_STRUT_PARTIAL when there is an adjacent screen: smspillaz@XPS-1010 ~/Source/Compiz/dev/dev/core/build> xprop | grep STRUT _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 0, 0, 0, 24, 1025, 0, 0, 0, 0 _NET_WM_STRUT(CARDINAL) = 0, 0, 0, 0 Output when no adjacent screen: smspillaz@XPS-1010 ~/Source/Compiz/dev/dev/core/build> xprop | grep STRUT _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 24, 0, 0, 0, 0, 24, 1025, 0, 0, 0, 0 _NET_WM_STRUT(CARDINAL) = 0, 24, 0, 0
I can reproduce this bug with GNOME panel 2.30.2. In my case the problem is way more severe, as when using an adjacent external monitor in portrait mode, the bottom GNOME panel located on the first monitor (my laptop's) struts up to almost all monitor height. This masses up badly tiling window manager such as Awesome, as they are left with very little space to arrange windows. Here is the output of xprop with and without xinerama in use: # with xinerama off $ xprop | grep _NET_WM_STRUT _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1439 _NET_WM_STRUT(CARDINAL) = 0, 0, 0, 25 # with xinerama on $ xprop | grep _NET_WM_STRUT _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, 0, 1439 _NET_WM_STRUT(CARDINAL) = 0, 0, 0, 725 (725 pixel is almost all the vertical space of my laptop's screen) Before discovering it is a panel-specific issue, I had reported this against Awesome at https://awesome.naquadah.org/bugs/index.php?do=details&task_id=858
Fixed in 3.36.0.