diff options
author | Matthias Clasen <mclasen@redhat.com> | 2014-03-21 15:41:13 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-03-24 10:26:31 -0400 |
commit | 02cd5737f6b0b146d7f98726c66b3d54263188fc (patch) | |
tree | 0abe25f78c5d8ef32895a4993005db8e04d6a7f7 /gtk/gtkdialog.c | |
parent | 7da97a3642d728c05d9a290e7608d337aaa697eb (diff) | |
download | gtk+-02cd5737f6b0b146d7f98726c66b3d54263188fc.tar.gz |
Don't let themes override explicit border-width in dialogs
This fixes an issue where the theme-provided border-width prevents
dialog contents from lining up properly with the headerbar. To make
this work in message dialogs, we have to explicitly set the border-
width of the action area to 0.
Diffstat (limited to 'gtk/gtkdialog.c')
-rw-r--r-- | gtk/gtkdialog.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c index d32a6570a7..d95be7132d 100644 --- a/gtk/gtkdialog.c +++ b/gtk/gtkdialog.c @@ -35,6 +35,7 @@ #include "gtkmarshalers.h" #include "gtkbox.h" #include "gtkboxprivate.h" +#include "gtkcontainerprivate.h" #include "gtkmain.h" #include "gtkintl.h" #include "gtkbindings.h" @@ -566,6 +567,15 @@ gtk_dialog_class_init (GtkDialogClass *class) _gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); + /** + * GtkDialog:content-area-border: + * + * The default border width used around the + * content area of the dialog, as returned by + * gtk_dialog_get_content_area(), unless gtk_container_set_border_width() + * was called on that widget directly. + * + */ gtk_widget_class_install_style_property (widget_class, g_param_spec_int ("content-area-border", P_("Content area border"), @@ -656,9 +666,11 @@ update_spacings (GtkDialog *dialog) "button-spacing", &button_spacing, "action-area-border", &action_area_border, NULL); - - gtk_container_set_border_width (GTK_CONTAINER (priv->vbox), - content_area_border); + + if (!_gtk_container_get_border_width_set (GTK_CONTAINER (priv->vbox))) + gtk_container_set_border_width (GTK_CONTAINER (priv->vbox), + content_area_border); + if (!_gtk_box_get_spacing_set (GTK_BOX (priv->vbox))) { gtk_box_set_spacing (GTK_BOX (priv->vbox), content_area_spacing); @@ -667,8 +679,10 @@ update_spacings (GtkDialog *dialog) gtk_box_set_spacing (GTK_BOX (priv->action_area), button_spacing); - gtk_container_set_border_width (GTK_CONTAINER (priv->action_area), - action_area_border); + + if (!_gtk_container_get_border_width_set (GTK_CONTAINER (priv->action_area))) + gtk_container_set_border_width (GTK_CONTAINER (priv->action_area), + action_area_border); } static void |