After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 164259 - Hang when non-"Expand" panel is resized almost to screen width
Hang when non-"Expand" panel is resized almost to screen width
Status: RESOLVED FIXED
Product: gnome-panel
Classification: Other
Component: general
git master
Other Linux
: High critical
: ---
Assigned To: Panel Maintainers
Panel Maintainers
: 163064 163405 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2005-01-16 15:37 UTC by John Spray
Modified: 2015-03-24 13:00 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10



Description John Spray 2005-01-16 15:37:11 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.
Comment 1 Olav Vitters 2005-01-16 16:02:48 UTC
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
  • #0 g_source_list_add
    at gmain.c line 870
  • #1 IA__g_source_attach
    at gmain.c line 931
  • #2 IA__g_idle_add_full
    at gmain.c line 3879
  • #3 _gtk_container_queue_resize
    at gtkcontainer.c line 1158
  • #4 real_queue_resize
    at gtksizegroup.c line 127
  • #5 queue_resize_on_widget
    at gtksizegroup.c line 169
  • #6 IA__gtk_widget_queue_resize
    at gtkwidget.c line 2512
  • #7 panel_toplevel_update_edges
    at panel-toplevel.c line 1469
  • #8 panel_toplevel_size_request
    at panel-toplevel.c line 2163
  • #9 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #10 g_type_class_meta_marshal
    at gclosure.c line 514
  • #11 IA__g_closure_invoke
    at gclosure.c line 437
  • #12 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #13 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #14 IA__g_signal_emit_by_name
    at gsignal.c line 2312
  • #15 do_size_request
    at gtksizegroup.c line 496
  • #16 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 683
  • #17 IA__gtk_widget_size_request
    at gtkwidget.c line 2597
  • #18 panel_toplevel_check_resize
    at panel-toplevel.c line 2724
  • #19 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #20 g_type_class_meta_marshal
    at gclosure.c line 514
  • #21 IA__g_closure_invoke
    at gclosure.c line 437
  • #22 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #23 IA__g_signal_emit_valist
    at gsignal.c line 2244
  • #24 IA__g_signal_emit
    at gsignal.c line 2288
  • #25 IA__gtk_container_check_resize
    at gtkcontainer.c line 1190
  • #26 gtk_container_idle_sizer
    at gtkcontainer.c line 1114
  • #27 g_idle_dispatch
    at gmain.c line 3821
  • #28 IA__g_main_context_dispatch
    at gmain.c line 1947
  • #29 g_main_context_iterate
    at gmain.c line 2578
  • #30 IA__g_main_loop_run
    at gmain.c line 2782
  • #31 IA__gtk_main
    at gtkmain.c line 963
  • #32 main
    at main.c line 96

Comment 2 Vincent Untz 2005-01-16 16:44:11 UTC
Probably the same bug as bug #163064.
Comment 3 Vincent Untz 2005-01-17 11:32:39 UTC
Might be related to bug #163405 too.
Comment 4 Vincent Untz 2005-02-03 19:24:13 UTC
*** Bug 163405 has been marked as a duplicate of this bug. ***
Comment 5 Vincent Untz 2005-02-03 19:24:29 UTC
*** Bug 163064 has been marked as a duplicate of this bug. ***
Comment 6 Vincent Untz 2005-02-03 19:25:36 UTC
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.
Comment 7 Vincent Untz 2005-02-06 12:49:21 UTC
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