aboutsummaryrefslogtreecommitdiffstats
path: root/src/gtkutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r--src/gtkutil.c99
1 files changed, 68 insertions, 31 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 3b7e6888753..6fd4b969819 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -559,7 +559,7 @@ hierarchy_ch_cb (GtkWidget *widget,
559 FRAME_PTR f = (FRAME_PTR) user_data; 559 FRAME_PTR f = (FRAME_PTR) user_data;
560 struct x_output *x = f->output_data.x; 560 struct x_output *x = f->output_data.x;
561 GtkWidget *top = gtk_widget_get_toplevel (x->ttip_lbl); 561 GtkWidget *top = gtk_widget_get_toplevel (x->ttip_lbl);
562 562
563 if (! top || ! GTK_IS_WINDOW (top)) 563 if (! top || ! GTK_IS_WINDOW (top))
564 gtk_widget_hide (previous_toplevel); 564 gtk_widget_hide (previous_toplevel);
565} 565}
@@ -580,7 +580,7 @@ qttip_cb (GtkWidget *widget,
580{ 580{
581 FRAME_PTR f = (FRAME_PTR) user_data; 581 FRAME_PTR f = (FRAME_PTR) user_data;
582 struct x_output *x = f->output_data.x; 582 struct x_output *x = f->output_data.x;
583 if (x->ttip_widget == NULL) 583 if (x->ttip_widget == NULL)
584 { 584 {
585 g_object_set (G_OBJECT (widget), "has-tooltip", FALSE, NULL); 585 g_object_set (G_OBJECT (widget), "has-tooltip", FALSE, NULL);
586 x->ttip_widget = tooltip; 586 x->ttip_widget = tooltip;
@@ -589,6 +589,8 @@ qttip_cb (GtkWidget *widget,
589 g_object_ref (G_OBJECT (x->ttip_lbl)); 589 g_object_ref (G_OBJECT (x->ttip_lbl));
590 gtk_tooltip_set_custom (tooltip, x->ttip_lbl); 590 gtk_tooltip_set_custom (tooltip, x->ttip_lbl);
591 x->ttip_window = GTK_WINDOW (gtk_widget_get_toplevel (x->ttip_lbl)); 591 x->ttip_window = GTK_WINDOW (gtk_widget_get_toplevel (x->ttip_lbl));
592 /* ATK needs an empty title for some reason. */
593 gtk_window_set_title (x->ttip_window, "");
592 /* Realize so we can safely get screen later on. */ 594 /* Realize so we can safely get screen later on. */
593 gtk_widget_realize (GTK_WIDGET (x->ttip_window)); 595 gtk_widget_realize (GTK_WIDGET (x->ttip_window));
594 gtk_widget_realize (x->ttip_lbl); 596 gtk_widget_realize (x->ttip_lbl);
@@ -631,14 +633,14 @@ xg_prepare_tooltip (FRAME_PTR f,
631 screen = gdk_drawable_get_screen (gwin); 633 screen = gdk_drawable_get_screen (gwin);
632 settings = gtk_settings_get_for_screen (screen); 634 settings = gtk_settings_get_for_screen (screen);
633 g_object_get (settings, "gtk-enable-tooltips", &tt_enabled, NULL); 635 g_object_get (settings, "gtk-enable-tooltips", &tt_enabled, NULL);
634 if (tt_enabled) 636 if (tt_enabled)
635 { 637 {
636 g_object_set (settings, "gtk-enable-tooltips", FALSE, NULL); 638 g_object_set (settings, "gtk-enable-tooltips", FALSE, NULL);
637 /* Record that we disabled it so it can be enabled again. */ 639 /* Record that we disabled it so it can be enabled again. */
638 g_object_set_data (G_OBJECT (x->ttip_window), "restore-tt", 640 g_object_set_data (G_OBJECT (x->ttip_window), "restore-tt",
639 (gpointer)f); 641 (gpointer)f);
640 } 642 }
641 643
642 /* Prevent Gtk+ from hiding tooltip on mouse move and such. */ 644 /* Prevent Gtk+ from hiding tooltip on mouse move and such. */
643 g_object_set_data (G_OBJECT 645 g_object_set_data (G_OBJECT
644 (gtk_widget_get_display (GTK_WIDGET (x->ttip_window))), 646 (gtk_widget_get_display (GTK_WIDGET (x->ttip_window))),
@@ -652,7 +654,7 @@ xg_prepare_tooltip (FRAME_PTR f,
652 gtk_widget_size_request (GTK_WIDGET (x->ttip_window), &req); 654 gtk_widget_size_request (GTK_WIDGET (x->ttip_window), &req);
653 if (width) *width = req.width; 655 if (width) *width = req.width;
654 if (height) *height = req.height; 656 if (height) *height = req.height;
655 657
656 UNBLOCK_INPUT; 658 UNBLOCK_INPUT;
657 659
658 return 1; 660 return 1;
@@ -799,7 +801,7 @@ xg_frame_resized (FRAME_PTR f, int pixelwidth, int pixelheight)
799 &pixelwidth, &pixelheight, 0); 801 &pixelwidth, &pixelheight, 0);
800 else return; 802 else return;
801 } 803 }
802 804
803 805
804 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, pixelheight); 806 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, pixelheight);
805 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pixelwidth); 807 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pixelwidth);
@@ -1073,7 +1075,7 @@ xg_create_frame_widgets (FRAME_PTR f)
1073 f->output_data.x->ttip_widget = 0; 1075 f->output_data.x->ttip_widget = 0;
1074 f->output_data.x->ttip_lbl = 0; 1076 f->output_data.x->ttip_lbl = 0;
1075 f->output_data.x->ttip_window = 0; 1077 f->output_data.x->ttip_window = 0;
1076 gtk_widget_set_tooltip_text (wtop, "Dummy text"); 1078 gtk_widget_set_tooltip_text (wtop, "Dummy text");
1077 g_signal_connect (wtop, "query-tooltip", G_CALLBACK (qttip_cb), f); 1079 g_signal_connect (wtop, "query-tooltip", G_CALLBACK (qttip_cb), f);
1078#endif 1080#endif
1079 1081
@@ -1452,7 +1454,7 @@ pop_down_dialog (Lisp_Object arg)
1452 1454
1453 g_main_loop_quit (dd->loop); 1455 g_main_loop_quit (dd->loop);
1454 g_main_loop_unref (dd->loop); 1456 g_main_loop_unref (dd->loop);
1455 1457
1456 UNBLOCK_INPUT; 1458 UNBLOCK_INPUT;
1457 1459
1458 return Qnil; 1460 return Qnil;
@@ -1480,7 +1482,7 @@ xg_maybe_add_timer (gpointer data)
1480 return FALSE; 1482 return FALSE;
1481} 1483}
1482 1484
1483 1485
1484/* Pops up a modal dialog W and waits for response. 1486/* Pops up a modal dialog W and waits for response.
1485 We don't use gtk_dialog_run because we want to process emacs timers. 1487 We don't use gtk_dialog_run because we want to process emacs timers.
1486 The dialog W is not destroyed when this function returns. */ 1488 The dialog W is not destroyed when this function returns. */
@@ -1514,7 +1516,7 @@ xg_dialog_run (FRAME_PTR f, GtkWidget *w)
1514 1516
1515 (void) xg_maybe_add_timer (&dd); 1517 (void) xg_maybe_add_timer (&dd);
1516 g_main_loop_run (dd.loop); 1518 g_main_loop_run (dd.loop);
1517 1519
1518 dd.w = 0; 1520 dd.w = 0;
1519 unbind_to (count, Qnil); 1521 unbind_to (count, Qnil);
1520 1522
@@ -3072,6 +3074,23 @@ xg_modify_menubar_widgets (GtkWidget *menubar, FRAME_PTR f, widget_value *val,
3072 gtk_widget_show_all (menubar); 3074 gtk_widget_show_all (menubar);
3073} 3075}
3074 3076
3077/* Callback called when the menu bar W is mapped.
3078 Used to find the height of the menu bar if we didn't get it
3079 after showing the widget. */
3080
3081static void
3082menubar_map_cb (GtkWidget *w, gpointer user_data)
3083{
3084 GtkRequisition req;
3085 FRAME_PTR f = (FRAME_PTR) user_data;
3086 gtk_widget_size_request (w, &req);
3087 if (FRAME_MENUBAR_HEIGHT (f) != req.height)
3088 {
3089 FRAME_MENUBAR_HEIGHT (f) = req.height;
3090 xg_height_or_width_changed (f);
3091 }
3092}
3093
3075/* Recompute all the widgets of frame F, when the menu bar has been 3094/* Recompute all the widgets of frame F, when the menu bar has been
3076 changed. Value is non-zero if widgets were updated. */ 3095 changed. Value is non-zero if widgets were updated. */
3077 3096
@@ -3093,10 +3112,20 @@ xg_update_frame_menubar (FRAME_PTR f)
3093 FALSE, FALSE, 0); 3112 FALSE, FALSE, 0);
3094 gtk_box_reorder_child (GTK_BOX (x->vbox_widget), x->menubar_widget, 0); 3113 gtk_box_reorder_child (GTK_BOX (x->vbox_widget), x->menubar_widget, 0);
3095 3114
3115 g_signal_connect (x->menubar_widget, "map", G_CALLBACK (menubar_map_cb), f);
3096 gtk_widget_show_all (x->menubar_widget); 3116 gtk_widget_show_all (x->menubar_widget);
3097 gtk_widget_size_request (x->menubar_widget, &req); 3117 gtk_widget_size_request (x->menubar_widget, &req);
3098 FRAME_MENUBAR_HEIGHT (f) = req.height; 3118
3099 xg_height_or_width_changed (f); 3119 /* If menu bar doesn't know its height yet, cheat a little so the frame
3120 doesn't jump so much when resized later in menubar_map_cb. */
3121 if (req.height == 0)
3122 req.height = 23;
3123
3124 if (FRAME_MENUBAR_HEIGHT (f) != req.height)
3125 {
3126 FRAME_MENUBAR_HEIGHT (f) = req.height;
3127 xg_height_or_width_changed (f);
3128 }
3100 UNBLOCK_INPUT; 3129 UNBLOCK_INPUT;
3101 3130
3102 return 1; 3131 return 1;
@@ -3339,7 +3368,7 @@ xg_create_scroll_bar (FRAME_PTR f,
3339 "button-release-event", 3368 "button-release-event",
3340 end_callback, 3369 end_callback,
3341 (gpointer) bar); 3370 (gpointer) bar);
3342 3371
3343 /* The scroll bar widget does not draw on a window of its own. Instead 3372 /* The scroll bar widget does not draw on a window of its own. Instead
3344 it draws on the parent window, in this case the edit widget. So 3373 it draws on the parent window, in this case the edit widget. So
3345 whenever the edit widget is cleared, the scroll bar needs to redraw 3374 whenever the edit widget is cleared, the scroll bar needs to redraw
@@ -3428,11 +3457,11 @@ xg_update_scrollbar_pos (FRAME_PTR f,
3428 FRAME_X_WINDOW (f), 3457 FRAME_X_WINDOW (f),
3429 oldx, oldy, oldw, oldh, 0); 3458 oldx, oldy, oldw, oldh, 0);
3430 } 3459 }
3431 3460
3432 /* GTK does not redraw until the main loop is entered again, but 3461 /* GTK does not redraw until the main loop is entered again, but
3433 if there are no X events pending we will not enter it. So we sync 3462 if there are no X events pending we will not enter it. So we sync
3434 here to get some events. */ 3463 here to get some events. */
3435 3464
3436 x_sync (f); 3465 x_sync (f);
3437 SET_FRAME_GARBAGED (f); 3466 SET_FRAME_GARBAGED (f);
3438 cancel_mouse_face (f); 3467 cancel_mouse_face (f);
@@ -3547,7 +3576,7 @@ xg_event_is_for_scrollbar (FRAME_PTR f, XEvent *event)
3547 GtkWidget *w = gtk_grab_get_current (); 3576 GtkWidget *w = gtk_grab_get_current ();
3548 retval = w != 0 && GTK_IS_SCROLLBAR (w); 3577 retval = w != 0 && GTK_IS_SCROLLBAR (w);
3549 } 3578 }
3550 3579
3551 return retval; 3580 return retval;
3552} 3581}
3553 3582
@@ -3635,7 +3664,7 @@ xg_tool_bar_callback (GtkWidget *w, gpointer client_data)
3635 this is written. */ 3664 this is written. */
3636 event.modifiers = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), mod); 3665 event.modifiers = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), mod);
3637 kbd_buffer_store_event (&event); 3666 kbd_buffer_store_event (&event);
3638 3667
3639 /* Return focus to the frame after we have clicked on a detached 3668 /* Return focus to the frame after we have clicked on a detached
3640 tool bar button. */ 3669 tool bar button. */
3641 Fx_focus_frame (frame); 3670 Fx_focus_frame (frame);
@@ -3672,7 +3701,7 @@ xg_tool_bar_proxy_help_callback (GtkWidget *w,
3672{ 3701{
3673 GtkWidget *wbutton = GTK_WIDGET (g_object_get_data (G_OBJECT (w), 3702 GtkWidget *wbutton = GTK_WIDGET (g_object_get_data (G_OBJECT (w),
3674 XG_TOOL_BAR_PROXY_BUTTON)); 3703 XG_TOOL_BAR_PROXY_BUTTON));
3675 3704
3676 return xg_tool_bar_help_callback (wbutton, event, client_data); 3705 return xg_tool_bar_help_callback (wbutton, event, client_data);
3677} 3706}
3678 3707
@@ -3775,7 +3804,7 @@ xg_tool_bar_menu_proxy (GtkToolItem *toolitem, gpointer user_data)
3775 G_CALLBACK (xg_tool_bar_proxy_callback), 3804 G_CALLBACK (xg_tool_bar_proxy_callback),
3776 user_data); 3805 user_data);
3777 3806
3778 3807
3779 g_object_set_data (G_OBJECT (wmenuitem), XG_TOOL_BAR_PROXY_BUTTON, 3808 g_object_set_data (G_OBJECT (wmenuitem), XG_TOOL_BAR_PROXY_BUTTON,
3780 (gpointer) wbutton); 3809 (gpointer) wbutton);
3781 gtk_tool_item_set_proxy_menu_item (toolitem, "Emacs toolbar item", wmenuitem); 3810 gtk_tool_item_set_proxy_menu_item (toolitem, "Emacs toolbar item", wmenuitem);
@@ -3973,7 +4002,7 @@ xg_pack_tool_bar (FRAME_PTR f, Lisp_Object pos)
3973 x->toolbar_widget); 4002 x->toolbar_widget);
3974 } 4003 }
3975 4004
3976 if (into_hbox) 4005 if (into_hbox)
3977 { 4006 {
3978 gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), 4007 gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget),
3979 GTK_POS_TOP); 4008 GTK_POS_TOP);
@@ -4057,18 +4086,23 @@ xg_make_tool_item (FRAME_PTR f,
4057 GtkWidget *wimage, 4086 GtkWidget *wimage,
4058 GtkWidget **wbutton, 4087 GtkWidget **wbutton,
4059 const char *label, 4088 const char *label,
4060 int i) 4089 int i,
4090 int vert_only)
4061{ 4091{
4062 GtkToolItem *ti = gtk_tool_item_new (); 4092 GtkToolItem *ti = gtk_tool_item_new ();
4063 Lisp_Object style = Ftool_bar_get_system_style (); 4093 Lisp_Object style = Ftool_bar_get_system_style ();
4064 int both_horiz = EQ (style, Qboth_horiz); 4094 int both_horiz = EQ (style, Qboth_horiz);
4065 int text_image = EQ (style, Qtext_image_horiz); 4095 int text_image = EQ (style, Qtext_image_horiz);
4066 4096
4067 GtkWidget *vb = both_horiz || text_image 4097 GtkWidget *vb = both_horiz || text_image
4068 ? gtk_hbox_new (FALSE, 0) : gtk_vbox_new (FALSE, 0); 4098 ? gtk_hbox_new (FALSE, 0) : gtk_vbox_new (FALSE, 0);
4069 GtkWidget *wb = gtk_button_new (); 4099 GtkWidget *wb = gtk_button_new ();
4070 GtkWidget *weventbox = gtk_event_box_new (); 4100 GtkWidget *weventbox = gtk_event_box_new ();
4071 4101
4102 /* We are not letting Gtk+ alter display on this, we only keep it here
4103 so we can get it later in xg_show_toolbar_item. */
4104 gtk_tool_item_set_is_important (ti, !vert_only);
4105
4072 if (wimage && ! text_image) 4106 if (wimage && ! text_image)
4073 gtk_box_pack_start (GTK_BOX (vb), wimage, TRUE, TRUE, 0); 4107 gtk_box_pack_start (GTK_BOX (vb), wimage, TRUE, TRUE, 0);
4074 4108
@@ -4113,7 +4147,7 @@ xg_make_tool_item (FRAME_PTR f,
4113 NULL); 4147 NULL);
4114 4148
4115 g_object_set_data (G_OBJECT (wb), XG_FRAME_DATA, (gpointer)f); 4149 g_object_set_data (G_OBJECT (wb), XG_FRAME_DATA, (gpointer)f);
4116 4150
4117 /* Use enter/leave notify to show help. We use the events 4151 /* Use enter/leave notify to show help. We use the events
4118 rather than the GtkButton specific signals "enter" and 4152 rather than the GtkButton specific signals "enter" and
4119 "leave", so we can have only one callback. The event 4153 "leave", so we can have only one callback. The event
@@ -4128,7 +4162,7 @@ xg_make_tool_item (FRAME_PTR f,
4128 G_CALLBACK (xg_tool_bar_help_callback), 4162 G_CALLBACK (xg_tool_bar_help_callback),
4129 (gpointer) (EMACS_INT) i); 4163 (gpointer) (EMACS_INT) i);
4130 } 4164 }
4131 4165
4132 if (wbutton) *wbutton = wb; 4166 if (wbutton) *wbutton = wb;
4133 4167
4134 return ti; 4168 return ti;
@@ -4142,7 +4176,8 @@ xg_show_toolbar_item (GtkToolItem *ti)
4142 int text_image = EQ (style, Qtext_image_horiz); 4176 int text_image = EQ (style, Qtext_image_horiz);
4143 4177
4144 int horiz = both_horiz || text_image; 4178 int horiz = both_horiz || text_image;
4145 int show_label = ! EQ (style, Qimage); 4179 int vert_only = ! gtk_tool_item_get_is_important (ti);
4180 int show_label = ! EQ (style, Qimage) && ! (vert_only && horiz);
4146 int show_image = ! EQ (style, Qtext); 4181 int show_image = ! EQ (style, Qtext);
4147 4182
4148 GtkWidget *weventbox = gtk_bin_get_child (GTK_BIN (ti)); 4183 GtkWidget *weventbox = gtk_bin_get_child (GTK_BIN (ti));
@@ -4213,7 +4248,7 @@ xg_update_tool_bar_sizes (FRAME_PTR f)
4213 if (pos == 0 || (pos == 1 && x->menubar_widget)) nt = req.height; 4248 if (pos == 0 || (pos == 1 && x->menubar_widget)) nt = req.height;
4214 else nb = req.height; 4249 else nb = req.height;
4215 } 4250 }
4216 4251
4217 if (nl != FRAME_TOOLBAR_LEFT_WIDTH (f) 4252 if (nl != FRAME_TOOLBAR_LEFT_WIDTH (f)
4218 || nr != FRAME_TOOLBAR_RIGHT_WIDTH (f) 4253 || nr != FRAME_TOOLBAR_RIGHT_WIDTH (f)
4219 || nt != FRAME_TOOLBAR_TOP_HEIGHT (f) 4254 || nt != FRAME_TOOLBAR_TOP_HEIGHT (f)
@@ -4279,7 +4314,7 @@ update_frame_tool_bar (FRAME_PTR f)
4279 4314
4280 wtoolbar = GTK_TOOLBAR (x->toolbar_widget); 4315 wtoolbar = GTK_TOOLBAR (x->toolbar_widget);
4281 dir = gtk_widget_get_direction (GTK_WIDGET (wtoolbar)); 4316 dir = gtk_widget_get_direction (GTK_WIDGET (wtoolbar));
4282 4317
4283 for (i = 0; i < f->n_tool_bar_items; ++i) 4318 for (i = 0; i < f->n_tool_bar_items; ++i)
4284 { 4319 {
4285 int enabled_p = !NILP (PROP (TOOL_BAR_ITEM_ENABLED_P)); 4320 int enabled_p = !NILP (PROP (TOOL_BAR_ITEM_ENABLED_P));
@@ -4299,7 +4334,8 @@ update_frame_tool_bar (FRAME_PTR f)
4299 Lisp_Object specified_file; 4334 Lisp_Object specified_file;
4300 const char *label = (STRINGP (PROP (TOOL_BAR_ITEM_LABEL)) 4335 const char *label = (STRINGP (PROP (TOOL_BAR_ITEM_LABEL))
4301 ? SSDATA (PROP (TOOL_BAR_ITEM_LABEL)) : ""); 4336 ? SSDATA (PROP (TOOL_BAR_ITEM_LABEL)) : "");
4302 4337 int vert_only = ! NILP (PROP (TOOL_BAR_ITEM_VERT_ONLY));
4338
4303 ti = gtk_toolbar_get_nth_item (GTK_TOOLBAR (wtoolbar), i); 4339 ti = gtk_toolbar_get_nth_item (GTK_TOOLBAR (wtoolbar), i);
4304 4340
4305 if (ti) 4341 if (ti)
@@ -4389,7 +4425,7 @@ update_frame_tool_bar (FRAME_PTR f)
4389 else 4425 else
4390 { 4426 {
4391 /* Insert an empty (non-image) button */ 4427 /* Insert an empty (non-image) button */
4392 ti = xg_make_tool_item (f, NULL, NULL, "", i); 4428 ti = xg_make_tool_item (f, NULL, NULL, "", i, 0);
4393 gtk_toolbar_insert (GTK_TOOLBAR (wtoolbar), ti, -1); 4429 gtk_toolbar_insert (GTK_TOOLBAR (wtoolbar), ti, -1);
4394 } 4430 }
4395 continue; 4431 continue;
@@ -4423,7 +4459,7 @@ update_frame_tool_bar (FRAME_PTR f)
4423 } 4459 }
4424 4460
4425 gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin); 4461 gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin);
4426 ti = xg_make_tool_item (f, w, &wbutton, label, i); 4462 ti = xg_make_tool_item (f, w, &wbutton, label, i, vert_only);
4427 gtk_toolbar_insert (GTK_TOOLBAR (wtoolbar), ti, -1); 4463 gtk_toolbar_insert (GTK_TOOLBAR (wtoolbar), ti, -1);
4428 gtk_widget_set_sensitive (wbutton, enabled_p); 4464 gtk_widget_set_sensitive (wbutton, enabled_p);
4429 } 4465 }
@@ -4440,6 +4476,7 @@ update_frame_tool_bar (FRAME_PTR f)
4440 gpointer old_icon_name = g_object_get_data (G_OBJECT (wimage), 4476 gpointer old_icon_name = g_object_get_data (G_OBJECT (wimage),
4441 XG_TOOL_BAR_ICON_NAME); 4477 XG_TOOL_BAR_ICON_NAME);
4442 gtk_label_set_text (GTK_LABEL (wlbl), label); 4478 gtk_label_set_text (GTK_LABEL (wlbl), label);
4479 gtk_tool_item_set_is_important (ti, !vert_only);
4443 if (stock_name && 4480 if (stock_name &&
4444 (! old_stock_name || strcmp (old_stock_name, stock_name) != 0)) 4481 (! old_stock_name || strcmp (old_stock_name, stock_name) != 0))
4445 { 4482 {
@@ -4523,7 +4560,7 @@ free_frame_tool_bar (FRAME_PTR f)
4523 BLOCK_INPUT; 4560 BLOCK_INPUT;
4524 /* We may have created the toolbar_widget in xg_create_tool_bar, but 4561 /* We may have created the toolbar_widget in xg_create_tool_bar, but
4525 not the x->handlebox_widget which is created in xg_pack_tool_bar. */ 4562 not the x->handlebox_widget which is created in xg_pack_tool_bar. */
4526 if (is_packed) 4563 if (is_packed)
4527 { 4564 {
4528 if (x->toolbar_in_hbox) 4565 if (x->toolbar_in_hbox)
4529 gtk_container_remove (GTK_CONTAINER (x->hbox_widget), 4566 gtk_container_remove (GTK_CONTAINER (x->hbox_widget),