[Pkg-xfce-devel] Bug#602341: Bug#602341: xfce4-panel: Panel ends up part way up screen after screen resize

Wookey wookey at wookware.org
Thu Nov 4 12:01:55 UTC 2010

+++ Yves-Alexis Perez [2010-11-04 10:04 +0100]:
> On mer., 2010-11-03 at 22:16 +0000, Wookey wrote:
> > If you resize the screen to make it smaller, the panel moves to still
> > be at the bottom of the screen, but when you resize it to be larger
> > again the panel stays at the same point so now it is part way up the
> > screen, obscuring useful stuff.
> > 
> > I think that you need to enable the external display to provoke this
> > bug, but once it has gone wrong it stays wrong until a restart of the
> > session.
> > 
> > Here is a sequence that broke it for me:
> > LVDS screen is 1440x900. turn on VGA screen and set resolution of both
> > internal and external screens to 1024x768. (give talk). use grandr to
> > turn off VGA output and reset LVDS screen to 1440x900. Panel is now
> > part way up screen, and no amount of resizing will fix that. 
> > 
> > This is a long-standing bug present in lenny as well as squeeze.
> Yes, xfce4-panel doesn't really support xrandr hot-resize, so you need
> to restart it after changing anything, using xfce4-panel -r. Can you try
> and report back?

I did some further tests and found the following: If you do the
resizing with xfce4-settings display then the panel moves on both
smaller-res and larger-res resizes. If you do the resizing with xrandr
or grandr then it only moves to the lower-res position. However there
is a state (after having both diplays open during a
'resize-to-smaller' event I believe, but I can't recreate it right
now) when using xfce-setting display will not now reset the panel to
the correct position. 

If you kill the panel and rerun it then it comes back in the correct
location. I assume that's equivalent to your above xfce4-panel -r
suggestion. And yes I can confirm that xfce4-panel -r does indeed fix
the issue. Thanks, that's nice and easy. 

When it is stuck in 'broken' state, if you set the panel to be
moveable then you can move it freely within the old, smaller,
screen-res but not outside, so clearly xfce4-panel still thinks the
screen has the old smaller reolution. This is all consistent with it
simply not noticing the xrandr 'screen got bigger' event (in which
case how come it notices the 'screen got smaller' change?)

I looked at the code in 4.6.5 and was told (on xfce4 IRC channel) that
this is all fixed in 4.8, but the 4.8 panel codebase seems completely
re-arranged so backporting a fix was not at all obviously do-able. 

Assuming xfce 4.6 is going to be in squeeze for the next 2 yrs then it
would be good if some kind of fix for this problem could go in as it
really is quite a problem for a typical user who just showed some
slides and then has their desktop several compromised until they restart.
At the very least having xfce4-panel -r prominently documented.
But much preferably getting it to notice the 'gets-bigger' xrandr
event. From a naive point of view it doesn't look like this is hard,
but I guess if the event is not delivered at all then maybe it will be
difficult to fix?

Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM

More information about the Pkg-xfce-devel mailing list