summaryrefslogtreecommitdiff
path: root/src/gtkutil.c
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2005-01-06 15:00:09 +0000
committerKaroly Lorentey <lorentey@elte.hu>2005-01-06 15:00:09 +0000
commit0feecea9fb7079a2c1fbfee32a992449a22cf478 (patch)
tree0826d68e3dc2ce370c7bd4dae7db3cffc3568321 /src/gtkutil.c
parent17d51b68fb4e7da4f18eff72c589b7ffc4f9c22c (diff)
parent1a63439b34c3455a317feda5c271dfdb7af0296b (diff)
downloademacs-0feecea9fb7079a2c1fbfee32a992449a22cf478.tar.gz
emacs-0feecea9fb7079a2c1fbfee32a992449a22cf478.tar.bz2
emacs-0feecea9fb7079a2c1fbfee32a992449a22cf478.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-747 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-748 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-749 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-751 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-752 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-78 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-79 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-80 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-278
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r--src/gtkutil.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 317f7824267..22919230a65 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -3356,12 +3356,37 @@ update_frame_tool_bar (f)
GList *icon_list;
GList *iter;
struct x_output *x = f->output_data.x;
+ int hmargin, vmargin;
if (! FRAME_GTK_WIDGET (f))
return;
BLOCK_INPUT;
+ if (INTEGERP (Vtool_bar_button_margin)
+ && XINT (Vtool_bar_button_margin) > 0)
+ {
+ hmargin = XFASTINT (Vtool_bar_button_margin);
+ vmargin = XFASTINT (Vtool_bar_button_margin);
+ }
+ else if (CONSP (Vtool_bar_button_margin))
+ {
+ if (INTEGERP (XCAR (Vtool_bar_button_margin))
+ && XINT (XCAR (Vtool_bar_button_margin)) > 0)
+ hmargin = XFASTINT (XCAR (Vtool_bar_button_margin));
+
+ if (INTEGERP (XCDR (Vtool_bar_button_margin))
+ && XINT (XCDR (Vtool_bar_button_margin)) > 0)
+ vmargin = XFASTINT (XCDR (Vtool_bar_button_margin));
+ }
+
+ /* The natural size (i.e. when GTK uses 0 as margin) looks best,
+ so take DEFAULT_TOOL_BAR_BUTTON_MARGIN to mean "default for GTK",
+ i.e. zero. This means that margins less than
+ DEFAULT_TOOL_BAR_BUTTON_MARGIN has no effect. */
+ hmargin = max (0, hmargin - DEFAULT_TOOL_BAR_BUTTON_MARGIN);
+ vmargin = max (0, vmargin - DEFAULT_TOOL_BAR_BUTTON_MARGIN);
+
if (! x->toolbar_widget)
xg_create_tool_bar (f);
@@ -3425,6 +3450,8 @@ update_frame_tool_bar (f)
{
GtkWidget *w = xg_get_image_for_pixmap (f, img, x->widget, NULL);
+ gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin);
+
gtk_toolbar_append_item (GTK_TOOLBAR (x->toolbar_widget),
0, 0, 0,
w,
@@ -3480,6 +3507,8 @@ update_frame_tool_bar (f)
XG_TOOL_BAR_IMAGE_DATA);
g_list_free (chlist);
+ gtk_misc_set_padding (GTK_MISC (wimage), hmargin, vmargin);
+
if (old_img != img->pixmap)
(void) xg_get_image_for_pixmap (f, img, x->widget, wimage);
@@ -3549,6 +3578,8 @@ free_frame_tool_bar (f)
void
xg_initialize ()
{
+ GtkBindingSet *binding_set;
+
xg_ignore_gtk_scrollbar = 0;
xg_detached_menus = 0;
xg_menu_cb_list.prev = xg_menu_cb_list.next =
@@ -3571,6 +3602,17 @@ xg_initialize ()
"gtk-key-theme-name",
"Emacs",
EMACS_CLASS);
+
+ /* Make dialogs close on C-g. Since file dialog inherits from
+ dialog, this works for them also. */
+ binding_set = gtk_binding_set_by_class (gtk_type_class (GTK_TYPE_DIALOG));
+ gtk_binding_entry_add_signal (binding_set, GDK_g, GDK_CONTROL_MASK,
+ "close", 0);
+
+ /* Make menus close on C-g. */
+ binding_set = gtk_binding_set_by_class (gtk_type_class (GTK_TYPE_MENU_SHELL));
+ gtk_binding_entry_add_signal (binding_set, GDK_g, GDK_CONTROL_MASK,
+ "cancel", 0);
}
#endif /* USE_GTK */