[glade/csd: 3/3] Use proper mechanisms to deal with dependent properties
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade/csd: 3/3] Use proper mechanisms to deal with dependent properties
- Date: Thu, 23 Oct 2014 01:05:20 +0000 (UTC)
commit 2d6b1bd61ce05988df2d7cd67444625227912bb7
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Oct 22 21:03:21 2014 -0400
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.
plugins/gtk+/glade-gtk-window.c | 19 ++++++++++++++++---
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 3e1d2b7..30e4cfd 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 4c24f7e..fe4d815 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));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]