# HG changeset patch # User Jan Dj¸«£rv # Date 1105202954 0 # Node ID eb72706060ad8f9380ad117d152d2d6045926662 # Parent 9a44c6f6d8b75d63bfa231d4da40c52a71786ad4 * xterm.h (struct x_output): New member, toolbar_detached. * gtkutil.c (xg_create_frame_widgets): Set initial tool bar height to 38. (xg_tool_bar_detach_callback): Set toolbar_detached to 1. (xg_tool_bar_attach_callback): Set toolbar_detached to 0. (xg_create_tool_bar): Initialize toolbar_detached. (update_frame_tool_bar): Only set FRAME_TOOLBAR_HEIGHT (f) if toolbar_detached is zero. diff -r 9a44c6f6d8b7 -r eb72706060ad src/ChangeLog --- a/src/ChangeLog Sat Jan 08 07:12:32 2005 +0000 +++ b/src/ChangeLog Sat Jan 08 16:49:14 2005 +0000 @@ -1,3 +1,15 @@ +2005-01-08 Jan Dj,Ad(Brv + + * xterm.h (struct x_output): New member, toolbar_detached. + + * gtkutil.c (xg_create_frame_widgets): Set initial tool bar height to + 38. + (xg_tool_bar_detach_callback): Set toolbar_detached to 1. + (xg_tool_bar_attach_callback): Set toolbar_detached to 0. + (xg_create_tool_bar): Initialize toolbar_detached. + (update_frame_tool_bar): Only set FRAME_TOOLBAR_HEIGHT (f) if + toolbar_detached is zero. + 2005-01-07 Jan Dj,Ad(Brv * xmenu.c (create_and_show_popup_menu): Pass zero as button to diff -r 9a44c6f6d8b7 -r eb72706060ad src/gtkutil.c --- a/src/gtkutil.c Sat Jan 08 07:12:32 2005 +0000 +++ b/src/gtkutil.c Sat Jan 08 16:49:14 2005 +0000 @@ -756,7 +756,7 @@ So we cheat a bit by setting a height that is what it will have later on when tool bar items are added. */ if (FRAME_EXTERNAL_TOOL_BAR (f) && f->n_tool_bar_items == 0) - FRAME_TOOLBAR_HEIGHT (f) = 34; + FRAME_TOOLBAR_HEIGHT (f) = 38; /* We don't want this widget double buffered, because we draw on it @@ -3156,6 +3156,8 @@ if (f) { + FRAME_X_OUTPUT (f)->toolbar_detached = 1; + /* When detaching a tool bar, not everything dissapear. There are a few pixels left that are used to drop the tool bar back into place. */ @@ -3187,11 +3189,13 @@ { GtkRequisition req; + FRAME_X_OUTPUT (f)->toolbar_detached = 0; + gtk_widget_size_request (w, &req); FRAME_TOOLBAR_HEIGHT (f) = req.height; /* The height has changed, resize outer widget and set columns - rows to what we had before detaching the tool bar. */ + rows to what we had before attaching the tool bar. */ xg_resize_outer_widget (f, FRAME_COLS (f), FRAME_LINES (f)); } } @@ -3305,6 +3309,8 @@ x->toolbar_widget = gtk_toolbar_new (); x->handlebox_widget = gtk_handle_box_new (); + x->toolbar_detached = 0; + gtk_container_add (GTK_CONTAINER (x->handlebox_widget), x->toolbar_widget); @@ -3537,7 +3543,8 @@ } gtk_widget_size_request (x->toolbar_widget, &new_req); - if (old_req.height != new_req.height) + if (old_req.height != new_req.height + && ! FRAME_X_OUTPUT (f)->toolbar_detached) { FRAME_TOOLBAR_HEIGHT (f) = new_req.height; xg_resize_outer_widget (f, FRAME_COLS (f), FRAME_LINES (f)); diff -r 9a44c6f6d8b7 -r eb72706060ad src/xterm.h --- a/src/xterm.h Sat Jan 08 07:12:32 2005 +0000 +++ b/src/xterm.h Sat Jan 08 16:49:14 2005 +0000 @@ -499,6 +499,8 @@ GtkWidget *toolbar_widget; /* The handle box that makes the tool bar detachable. */ GtkWidget *handlebox_widget; + /* Non-zero if the tool bar is detached. */ + int toolbar_detached; /* The last size hints set. */ GdkGeometry size_hints;