GNOME Bugzilla – Bug 312362
Pager applet causes non-expanded panel to move
Last modified: 2007-06-29 13:39:46 UTC
From Fedora: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=164781 Basically, its a non-expanded panel, snapped to the bottom-right of the screen which contains some launchers and a pager applet. When you log out and back in again, the panel moves to the left away from the edge of the screen. Problem here is that when the pager applet starts up first it momentarily takes up a lot more space (width-wise) than it should and so expands the panel, causing the panel's position to change. When the pager applet goes back to its normal size, the panel stays in that new position. Two solutions: 1) Make the pager take up a minimal width until it gets its proper size allocation. Right now, it initially assumes each workspace will be 48x48. Probably better to assume 1x1 instead. Of course, that only works where you know that the pager is going to have to operation on a height constrained basis and that the parent was going to allocate the maximum available height. If the pager widget was going to be in a normal app, assuming 1x1 would suck because that's all we'd ever be allocated. Probably best to have a wnck_pager_set_workspace_size() API or something. 2) Make the PanelToplevel persist any position changes which aren't explicitly requested by the user. So, unless you drag the panel to a new location, it will always try to go back to its original position, even if applets change size and stuff. This is the way PanelWidget currently works with applet positions - the "constrained position" is the applet's position as constrained by size changes, whereas "pos" is the position that the user last moved it to.
Solution 2 is in trunk now.