GNOME Bugzilla – Bug 164259
Hang when non-"Expand" panel is resized almost to screen width
Last modified: 2015-03-24 13:00:49 UTC
Crash in this case meaning panel goes nuts and becomes unresponsive, not a segfault. With my panel along the top of the screen, not expanded: -Move it to the top-left corner -Either by altering the size of the panel in properties, or by increasing number of workspaces in switcher, increase the length of the panel -At some point close to being all the way across the screen, the panel starts flickering between being at the left side and being all the way across. -Panel is unresponsive, eats CPU. -Problem persists on next login! Had to fire up gconf-editor in a failsafe session in order to make panel smaller and get it to start again. Don't recommend trying to reproduce this one with anything important running in your session.
I've increased the width of the Window List Applet to reproduce the hang. This hang seem to occur when the panel width is equal or greater than the screen width. During the hang the panel flickers a bit to the left and right. Backtrace during the hang: (gdb) bt
+ Trace 54573
Probably the same bug as bug #163064.
Might be related to bug #163405 too.
*** Bug 163405 has been marked as a duplicate of this bug. ***
*** Bug 163064 has been marked as a duplicate of this bug. ***
Bug is happening because there are two snaps happening for the toplevel: * snap to the left/right of the screen * snap to the center of the screen I'll try to find a good fix.
Got it. 2005-02-06 Vincent Untz <vincent@vuntz.net> Don't snap an non-expanded toplevel to a screen edge if the toplevel is centered. Keep the bevels if the toplevel is centered too to avoid a loop (and it feels consistent because this not an expanded toplevel) Fix bug #164259. * panel-toplevel.c: (panel_toplevel_update_edges): keep bevels if the non-expanded toplevel is centered (panel_toplevel_update_normal_position): don't snap to an edge if the toplevel is centered (panel_toplevel_update_auto_hide_position): ditto (panel_toplevel_update_position): ditto, move stuff that shouldn't be here to... (panel_toplevel_update_geometry): ... this function