diff options
author | Matthias Clasen <mclasen@redhat.com> | 2014-10-22 21:03:21 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-10-22 21:03:21 -0400 |
commit | 2d6b1bd61ce05988df2d7cd67444625227912bb7 (patch) | |
tree | 9be7db110ecd267ee759459b9ad1b758c25fe237 | |
parent | 6d4364cc2353f3366031156e4a1ab3a778feeb7b (diff) | |
download | glade-2d6b1bd61ce05988df2d7cd67444625227912bb7.tar.gz |
Use proper mechanisms to deal with dependent properties
Make desensitizing of title, decorated and hide-titlebar-when-maximized
part of the undo history, and also reset them to their default values.
-rw-r--r-- | plugins/gtk+/glade-gtk-window.c | 19 | ||||
-rw-r--r-- | plugins/gtk+/glade-window-editor.c | 14 |
2 files changed, 26 insertions, 7 deletions
diff --git a/plugins/gtk+/glade-gtk-window.c b/plugins/gtk+/glade-gtk-window.c index 3e1d2b7e..30e4cfd4 100644 --- a/plugins/gtk+/glade-gtk-window.c +++ b/plugins/gtk+/glade-gtk-window.c @@ -236,10 +236,10 @@ glade_gtk_window_set_property (GladeWidgetAdaptor * adaptor, GObject * object, const gchar * id, const GValue * value) { + GladeWidget *gwidget = glade_widget_get_from_gobject (object); + if (!strcmp (id, "glade-window-icon-name")) { - GladeWidget *gwidget = glade_widget_get_from_gobject (object); - glade_widget_property_set_sensitive (gwidget, "icon", FALSE, NOT_SELECTED_MSG); glade_widget_property_set_sensitive (gwidget, "icon-name", FALSE, NOT_SELECTED_MSG); @@ -259,9 +259,22 @@ glade_gtk_window_set_property (GladeWidgetAdaptor * adaptor, titlebar = glade_placeholder_new (); g_object_set_data (G_OBJECT (titlebar), "special-child-type", "titlebar"); gtk_window_set_titlebar (GTK_WINDOW (object), titlebar); + + glade_widget_property_set_sensitive (gwidget, "title", FALSE, + _("This property does not apply to client-side decorated windows")); + glade_widget_property_set_sensitive (gwidget, "decorated", FALSE, + _("This property does not apply to client-side decorated windows")); + glade_widget_property_set_sensitive (gwidget, "hide-titlebar-when-maximized", FALSE, + _("This property does not apply to client-side decorated windows")); } else - gtk_window_set_titlebar (GTK_WINDOW (object), NULL); + { + gtk_window_set_titlebar (GTK_WINDOW (object), NULL); + + glade_widget_property_set_sensitive (gwidget, "title", TRUE, NULL); + glade_widget_property_set_sensitive (gwidget, "decorated", TRUE, NULL); + glade_widget_property_set_sensitive (gwidget, "hide-titlebar-when-maximized", TRUE, NULL); + } } else GWA_GET_CLASS (GTK_TYPE_CONTAINER)->set_property (adaptor, object, id, value); diff --git a/plugins/gtk+/glade-window-editor.c b/plugins/gtk+/glade-window-editor.c index 4c24f7e8..fe4d8159 100644 --- a/plugins/gtk+/glade-window-editor.c +++ b/plugins/gtk+/glade-window-editor.c @@ -230,10 +230,6 @@ use_csd_toggled (GtkWidget *widget, /* Get new desired property state */ use_csd = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->use_csd_check)); - gtk_widget_set_sensitive (priv->title_editor, !use_csd); - gtk_widget_set_sensitive (priv->decorated_editor, !use_csd); - gtk_widget_set_sensitive (priv->hide_titlebar_editor, !use_csd); - /* Get any existing titlebar widget */ window = (GtkWidget *)glade_widget_get_object (gwidget); titlebar = gtk_window_get_titlebar (GTK_WINDOW (window)); @@ -264,6 +260,16 @@ use_csd_toggled (GtkWidget *widget, property = glade_widget_get_property (gwidget, "use-csd"); glade_command_set_property (property, use_csd); + if (use_csd) + { + property = glade_widget_get_property (gwidget, "title"); + glade_command_set_property (property, NULL); + property = glade_widget_get_property (gwidget, "decorated"); + glade_command_set_property (property, TRUE); + property = glade_widget_get_property (gwidget, "hide-titlebar-when-maximized"); + glade_command_set_property (property, FALSE); + } + glade_command_pop_group (); glade_editable_unblock (GLADE_EDITABLE (window_editor)); |