GNOME Bugzilla – Bug 140882
Problems with GOK's DOCK/struts -> won't move windows & desktop icons out of the way
Last modified: 2004-12-22 21:47:04 UTC
1. Configure your GNOME desktop to have a menu panel (the one with "Applications" on it) as the sole panel, and on the bottom of the screen. 2. Open a Nautilus directory window (e.g. "Computer") and place it such that the title bar is at the top edge of the screen 3. Launch gedit and place it such that the title bar of gedit is also at the top edge of the screen. 4. Right click on the menu panel, choose Properties, and set the Orientation to be top. 5. Notice that the gedit window & Nautilus directory window have moved down to accomodate the menu panel now being at the top of the screen. The desktop icons have done the same. 6. Set the menu panel back to the bottom of the screen and launch GOK 7. Set GOK to be docked to the top of the screen. 8. Notice that the gedit window & Nautilus directory window do NOT move down to accomodate GOK, nor have the Nautilus desktop icons. The GNOME Panel is clearly doing some magic here, which should be incorporated into GOK!
This feels like a regression to me, as I am pretty certain that GOK's DOCK mode worked as well as the panel did when originally introduced. I think something has changed in Metacity's behavior which has reintroduced this problem.
This is likely to be difficult to fix. However it's such important functionality for GOK users that I am raising the priority to P3 (AP2). It may even be a P2 (AP1) since I suspect it's responsible for the high visibility of bug #136159 which is currently blamed for almost all of the GOK test assertion failures.
BTW, rather than metacity changes being responsible, it's quite possible that other agents on the desktop using WM_STRUTS (e.g. gnome-panel) are the ones whose behavioral changes have triggered the regression. Or of course it could be changes in gtk+.
I found the issue with struts, which only applies to DOCK_TOP struts (DOCK_BOTTOM are and were working fine - at least, the same as gnome-panel's struts). The issue Peter raised regarding multiple docks on the same edge appears not to be feasible to fix... note that gnome-panel manages this by maintaining an in-process list of dock geometries, and all gnome panels are in the same process space. GOK can't do this (can't access the private process data of gnome-panel) and thus cannot use the same approach to sharing a strut (WM_STRUTS are per-edge). I don't even see a way to do this via the extended _wm_strut_partial APIs. However, the basic strut functionality of GOK is fixed with the attached patch.
Created attachment 27597 [details] [review] patch to fix this issue and bug 136160.
I have a patch for this which is nearly done, just enhancing the 'core pointer detection'.
Hey Bill, is there an RFE here for gnome-panel, to expose an API so apps like GOK can have this functionality?
Probably not, as such use of 'struts' is irregular.
ignore comment #6, it is misplaced.