GNOME Bugzilla – Bug 127758
when panel is set to autohide, unhiding shows resizing
Last modified: 2009-08-21 03:22:54 UTC
I have my bottom panel set to autohide. When I move my mouse down to unhide it, the animation isn't smooth. The panel raises ok, but then this weird resizing occurs for a split second, such that the panel raises a few more pixels and then lowers back, and the contents in the panel seem to resize during this period. The visual effect is rather annoying. The only things I have in the bottom panel are a Window List and a Workspace Switcher.
I can reproduce this problem on non-transparent panel
Wow. Crazy. I just changed the panel background from "None (use system theme)" to "Solid Color" and it appears to fix the problem. I just set the color to the same as the system theme and left the Style at 100% Opaque.
I tested this problem and I confirm the problem appeared on non-transparent panel. I tried on a quite big panel (34) and the panel had an obvious behaviour, but the resize/redranw operation was fast (less than a second). 1°) after to put he mouse a the bottom of the screen, the panel appeard few pixels above the bottom of the screen (I could see a dark line at the bottom of the panel, perhaps the bevel). 2°) then the "bevel" disparead, so the panel seems to "fall" on the bottom edge of the screen. 3°) all the widget of the panel are redraw hope this help.
This problem is also known at: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=102632
Okay, I can just about make out this with HEAD. I wouldn't saw its hugely noticable but ... I think I know what's going on. Basically, the panel tries not to have a bevel around the edges that are touching the screen so that launchers and applets etc. can be flush up against the edge of the screen. What's probably happening is that when the panel is hidden, its not against the edge of the screen and makes itself bigger in order to draw the bevel. The when its unhides, it notices its against the screen edge again and removes the bevel again. Someone needs to stick a load of debugging printfs in the animation code in panel-toplevel.c to confirm this is whats happening. If it is indeed what's happening, we should probably fix it by not removing the bevel when the panel is in a transient state. Oh, what really gives this away as the problem is that we never have a bevel on a panel that uses either a background colour or picture because there's no sane way of drawing that bevel.
*** Bug 134567 has been marked as a duplicate of this bug. ***
Created attachment 24719 [details] [review] gnome-panel-2.4.0-bevels.patch
I think the patch also fixes bug #134337.
I'am not sure if this is needed, but could you try to submit the patch against CVS head and see if it works and also fixes the problem with the multiload applet ?
> I'am not sure if this is needed, The problem was caused by unneccessary adding of bevels when auto-hiding. The automatic adding and removing of bevels during auto-hiding and auto-unhiding caused the resizing (*this* bug) and the clearing of the system monitor applet (bug #134337). The patch makes sure that no bevels are added when hiding. So the resizing and clearing no longer takes place. For example, with the default gnome-panel position. When auto-hiding, a bottom bevel was added. The patch changes the code so that this bottom bevel is no longer added. > but could you try to > submit the patch against CVS head and see if it works > and also fixes the problem with the multiload applet ? To be honest, CVS head is a bit out of scope for me personally. Also, I think this bug report was opened for version 2.4. So the patch should first be validated for version 2.4. The patch doesn't need to be valid for CVS head to be accepted for 2.4. Of course, someone must check whether a similar modification must be done in CVS head, maybe simply the patch works there too. So, anyone, feel free to test the patch with version 2.4, to get the patch validated for 2.4. And when the patch is validated, feel free to check what's left to be done at CVS head.
Oops I forgot to add myself to the cc list. Doing that now. Sorry for the noise.
Patch is good Bart, thanks much for tracking this down 2004-02-27 Mark McLoughlin <mark@skynet.ie> Patch from Bart Martens in bug #127758 to stop the panel resizing slightly during autohide which caused some pretty icky visual problems. * panel-toplevel.c: (panel_toplevel_update_edges): Don't draw bevels on edges of the panel which aren't visible on screen instead of just edges which are flush against the screen edge.
While trying to verify #134337 i came to the conclusion that it still bugs for RIGHT and BOTTOM panels. Look further in this i saw that bevels on standard colored panels are now always drawn on the right and bottom. Will attach a screenshot.
Created attachment 24925 [details] Demonstration shot.
Added GNOMEVER2.5 keyword seen this also happens for 2.5. You can see on the screenshot that the big vertical standard colored panel has bevels on the bottom and right. It doesn't matter where i place the panel it always has them like that. (Btw, no my desktop doesn't look like that, that is my debug head that runs on an old s3virge ;) )
Dennis, about your comments of 2004-02-29 04:05, is it OK for you that we discuss that on the appropriate bug report? I'll follow both.
Dennis, about your screenshot of 2004-02-29 04:07 and your comments of 2004-02-29 04:10: I think it is good that these bevels are drawn when the panel is not against the corresponding edges of the desktop. I have only tested with 2.4, because that's the bug's (original) scope. The patch may not work for 2.5/head.
Dennis: the screenshot you attached doesn't bear out what you are saying AFAICS. There is no bevel on that panel. Also, I can't reproduce this here. FWIW, Bart's patch couldn't have change the behaviour around drawing bevels on colour panels. Unless you can still get the panel to resize on autohide, please don't re-open this but log a new bug report for any issue you're seeing related to this.
Sorry for reopening my excuse. I forgot to restart the panel. for (i = 0; i < 100; i++) printf ("I am very ashamed\n");
This bug was marked RESOLVED without a resolution, which Bugzilla does not allow (and so I am fixing it). It is assumed that the bug was intended to be marked as FIXED. If the bug should have some other resolution, please change its resolution.