Description of problem: Evolution's main toolbar can be made to lose some icons and text labels simply by dragging it around. You don't actually have to let go of the mouse button for this to happen; the act of the toolbar changing from horizontal to vertical orientation seems to trigger it. Version-Release number of selected component (if applicable): evolution-1.5.94.1-1 evolution-2.0.0-1 How reproducible: Always Steps to Reproduce: 1. Drag evolution's toolbar around, making it change from horizontal to vertical orientation and back Actual results: Multiple icons and their associated text labels disappear. Expected results: Er, they don't. Additional info: This may only affect buttons with *both* icons and text labels. I'm not entirely sure.
I can reproduce this with gedit, and with Nautilus in browser mode, so I think it's a more general problem, not just evolution; will investigate further...
OK, evolution spews out lots of error similar to the following when you attach the toolbar vertically: (evolution-2.0:17344): Gtk-CRITICAL **: file gtkwidget.c: line 2221 (gtk_widget_realize): assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed (evolution-2.0:17344): Gtk-CRITICAL **: file gtkwidget.c: line 2221 (gtk_widget_realize): assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed (evolution-2.0:17344): Gdk-CRITICAL **: file gdkwindow.c: line 2180 (gdk_window_invalidate_rect): assertion `window != NULL' failed (evolution-2.0:17344): Gtk-CRITICAL **: file gtkwidget.c: line 2221 (gtk_widget_realize): assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed (evolution-2.0:17344): Gtk-CRITICAL **: file gtkwidget.c: line 6429 (gtk_widget_real_map): assertion `GTK_WIDGET_REALIZED (widget) == TRUE' failed (evolution-2.0:17344): Gdk-CRITICAL **: file gdkwindow.c: line 2180 (gdk_window_invalidate_rect): assertion `window != NULL' failed (evolution-2.0:17344): Gtk-CRITICAL **: file gtkwidget.c: line 2221 (gtk_widget_realize): assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
file-roller has it too, but with all the buttons, not just the icons+text ones.
Seems to be a bonoboui problem, actually... Here is where the first warning occurs: Breakpoint 1, 0x004d5936 in g_logv () from /usr/lib/libglib-2.0.so.0 (gdb) bt #0 0x004d5936 in g_logv () from /usr/lib/libglib-2.0.so.0 #1 0x004d5d74 in g_log () from /usr/lib/libglib-2.0.so.0 #2 0x00ed33e4 in gtk_widget_realize (widget=0x97dea88) at gtkwidget.c:2232 #3 0x00ed6ccd in gtk_widget_set_parent (widget=0x97dea88, parent=0x974a9f8) at gtkwidget.c:4296 #4 0x00d3d3e6 in gtk_bin_add (container=0x974a9f8, child=0x97dea88) at gtkbin.c:128 #5 0x00d417db in gtk_button_add (container=0x974a9f8, widget=0x97dea88) at gtkbutton.c:486 #6 0x0028f38e in g_cclosure_marshal_VOID__OBJECT () from /usr/lib/libgobject-2.0.so.0 #7 0x0027a4f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #8 0x0027a160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #9 0x0028d9be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #10 0x0028d157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #11 0x0028d454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #12 0x00d77827 in gtk_container_add (container=0x974a9f8, widget=0x97dea88) at gtkcontainer.c:962 #13 0x0033cafd in bonobo_ui_toolbar_button_item_get_type () from /usr/lib/libbonoboui-2.so.0 #14 0x0033cd9d in bonobo_ui_toolbar_button_item_get_type () from /usr/lib/libbonoboui-2.so.0 #15 0x0028e9ce in g_cclosure_marshal_VOID () from /usr/lib/libgobject-2.0.so.0 ---Type <return> to continue, or q <return> to quit--- #16 0x0027a4f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #17 0x0027a160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #18 0x0028dbc5 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #19 0x0028d157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #20 0x0028d454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #21 0x0033f1b3 in bonobo_ui_toolbar_item_set_style () from /usr/lib/libbonoboui-2.so.0 #22 0x0034091b in bonobo_ui_toolbar_get_type () from /usr/lib/libbonoboui-2.so.0 #23 0x00342427 in bonobo_ui_toolbar_get_type () from /usr/lib/libbonoboui-2.so.0 #24 0x0028e9ce in g_cclosure_marshal_VOID () from /usr/lib/libgobject-2.0.so.0 #25 0x0027a4f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #26 0x0027a160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #27 0x0028dbc5 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #28 0x0028d157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #29 0x0028d454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #30 0x00342f11 in bonobo_ui_toolbar_set_orientation () from /usr/lib/libbonoboui-2.so.0 #31 0x003426a7 in bonobo_ui_toolbar_get_type () from /usr/lib/libbonoboui-2.so.0 #32 0x0027eb66 in g_object_set_property () from /usr/lib/libgobject-2.0.so.0 #33 0x00315666 in bonobo_dock_item_set_orientation () -
Yes, definitively a libbonoboui issue. Adding a GtkHandleBox to testtoolbar shows that changing the orientation of a detached toolbar works fine in general, and reattaching also works as expected.
Known upstream since the a long time, apparently nobody cares enough: http://bugzilla.gnome.org/show_bug.cgi?id=131381
Federico did some work on BonoboToolbar, which is in the toolbar-rework branch of libbonoboui. It seems to fix the problem at hand, but unfortunately, I can get it to segfault fairly easily.
If nobody wants to fix it, maybe we should at least hide it by not allowing those affected toolbars to be moved. :(
*** Bug 133185 has been marked as a duplicate of this bug. ***
I have checked a fix in the toolbar-rework branch, which makes the segfault go away for me. The branch would probably needs a bit of banging to see whether all issues are fixed, but it looks better than HEAD to me.
To clarify; we're going to give Michael a little time to merge that branch and do a release. If he does so, we'll build that. If not, we'll have to break down and make a patch. We should probably do this by Friday.
Federico will merge today; not sure if there will be a release, but at least we should be able to take a snapshot from cvs HEAD, and avoid merging ourselves.
Fixed build should show up in rawhide soon.
in libbonoboui-2.8.0.99cvs20040927-1. 1. Excute gedit in gnome-terminal. 2. Quit gedit. 3. Print following error messages. (gedit:13358): Bonobo-WARNING **: Non-toolbar parent '<NULL-instance>' (gedit:13358): Bonobo-CRITICAL **: file bonobo-ui-toolbar-control-item.c: line 107 (impl_toolbar_reconfigured): assertion `toolbar != NULL' failed
please see: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=133969
Ok, closing this bug, since the toolbar dragging issue is fixed with the new bonoboui.