[glade/f17] Backport a patch for GtkButton properties sensitivity

Kalev Lember kalev at fedoraproject.org
Mon Oct 15 21:09:49 UTC 2012


commit 3399c5366a91308441e5a7e5f5edbaace7ed46dc
Author: Kalev Lember <kalevlember at gmail.com>
Date:   Mon Oct 15 22:58:51 2012 +0200

    Backport a patch for GtkButton properties sensitivity
    
    https://bugzilla.redhat.com/show_bug.cgi?id=863361

 glade-3.12.2-button-properties.patch |  123 ++++++++++++++++++++++++++++++++++
 glade.spec                           |    8 ++-
 2 files changed, 130 insertions(+), 1 deletions(-)
---
diff --git a/glade-3.12.2-button-properties.patch b/glade-3.12.2-button-properties.patch
new file mode 100644
index 0000000..224f61e
--- /dev/null
+++ b/glade-3.12.2-button-properties.patch
@@ -0,0 +1,123 @@
+From 1cf2c6beb2ba328d5a006ee7a6ddd1c800e324ec Mon Sep 17 00:00:00 2001
+From: Juan Pablo Ugarte <juanpablougarte at gmail.com>
+Date: Sat, 13 Oct 2012 12:00:05 -0300
+Subject: [PATCH] Fixed bug in GtkButton custom editor properties sensitivity
+ bug #685816 "Widget attributes editing broken"
+
+---
+ plugins/gtk+/glade-gtk-activatable.c | 87 +++++++++++++++++++-----------------
+ 1 file changed, 47 insertions(+), 40 deletions(-)
+
+diff --git a/plugins/gtk+/glade-gtk-activatable.c b/plugins/gtk+/glade-gtk-activatable.c
+index 31d538f..7cf9bf5 100644
+--- a/plugins/gtk+/glade-gtk-activatable.c
++++ b/plugins/gtk+/glade-gtk-activatable.c
+@@ -26,58 +26,65 @@
+ #include "glade-gtk-activatable.h"
+ 
+ /* ----------------------------- GtkActivatable ------------------------------ */
++static void
++update_use_action_appearance (GladeWidget *gwidget,
++                              gboolean related_action,
++                              gboolean use_appearance)
++{
++  gboolean sensitivity;
++  gchar *msg;
++  
++  if (use_appearance)
++    {
++      sensitivity = FALSE;
++      msg = ACTION_APPEARANCE_MSG;
++    }
++  else
++    {
++      sensitivity = TRUE;
++      msg = NULL;
++    }
++
++  glade_widget_property_set_sensitive (gwidget, "label", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "use-underline", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "stock", sensitivity, msg);
++  //glade_widget_property_set_sensitive (gwidget, "use-stock", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "image", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "image-position", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "custom-child", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "stock-id", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "label-widget", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "icon-name", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "icon-widget", sensitivity, msg);
++  glade_widget_property_set_sensitive (gwidget, "icon", sensitivity, msg);
++
++  if (related_action)
++    {
++      glade_widget_property_set_sensitive (gwidget, "visible", sensitivity, msg);
++      glade_widget_property_set_sensitive (gwidget, "sensitive", sensitivity, msg);
++      glade_widget_property_set_sensitive (gwidget, "accel-group", sensitivity, msg);
++      glade_widget_property_set_sensitive (gwidget, "use-action-appearance",
++                                           !sensitivity, sensitivity ? msg : NULL);
++    }
++}
++
+ void
+ glade_gtk_activatable_evaluate_property_sensitivity (GObject *object,
+                                                      const gchar *id,
+                                                      const GValue *value)
+ {
+   GladeWidget *gwidget = glade_widget_get_from_gobject (object);
+-  gboolean sensitivity;
+-  gchar *msg;
+ 
+   if (!strcmp (id, "related-action"))
+     {
+-      GtkAction *action = g_value_get_object (value);
+-      
+-      if (action)
+-        {
+-          sensitivity = FALSE;
+-          msg = ACTION_APPEARANCE_MSG;
+-        }
+-      else
+-        {
+-          sensitivity = TRUE;
+-          msg = NULL;
+-        }
+-
+-      glade_widget_property_set_sensitive (gwidget, "visible", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "sensitive", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "accel-group", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "use-action-appearance", !sensitivity, sensitivity ? msg : NULL);
++      update_use_action_appearance (gwidget, TRUE, 
++                                    g_value_get_object (value) != NULL);
+     }
+   else if (!strcmp (id, "use-action-appearance"))
+     {
+-      if (g_value_get_boolean (value))
+-        {
+-          sensitivity = FALSE;
+-          msg = ACTION_APPEARANCE_MSG;
+-        }
+-      else
+-        {
+-          sensitivity = TRUE;
+-          msg = NULL;
+-        }
++      GtkAction *action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (object));
++      gboolean use_appearance = g_value_get_boolean (value);
+       
+-      glade_widget_property_set_sensitive (gwidget, "label", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "use-underline", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "stock", sensitivity, msg);
+-      //glade_widget_property_set_sensitive (gwidget, "use-stock", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "image", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "custom-child", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "stock-id", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "label-widget", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "icon-name", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "icon-widget", sensitivity, msg);
+-      glade_widget_property_set_sensitive (gwidget, "icon", sensitivity, msg);
++      update_use_action_appearance (gwidget, FALSE, action && use_appearance);
+     }
+ }
+-- 
+1.7.12.1
+
diff --git a/glade.spec b/glade.spec
index b3e4f8b..c2380a0 100644
--- a/glade.spec
+++ b/glade.spec
@@ -1,6 +1,6 @@
 Name:           glade
 Version:        3.12.2
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        User Interface Designer for GTK+ and GNOME
 
 # - /usr/bin/glade is GPLv2+
@@ -14,6 +14,8 @@ Source0:        http://ftp.gnome.org/pub/GNOME/sources/glade/3.12/glade-%{versio
 # compared to 3.12.1 release.
 # https://bugzilla.gnome.org/show_bug.cgi?id=684455
 Patch0:         glade-3.12.2-soname.patch
+# https://bugzilla.redhat.com/show_bug.cgi?id=863361
+Patch1:         glade-3.12.2-button-properties.patch
 
 BuildRequires:  chrpath
 BuildRequires:  desktop-file-utils
@@ -67,6 +69,7 @@ developing applications that use Glade widget library.
 %prep
 %setup -q
 %patch0 -p1 -b .soname
+%patch1 -p1 -b .button_propeties
 
 
 %build
@@ -139,6 +142,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 %doc %{_datadir}/gtk-doc/
 
 %changelog
+* Mon Oct 15 2012 Kalev Lember <kalevlember at gmail.com> - 3.12.2-3
+- Backport a patch for GtkButton properties sensitivity (#863361)
+
 * Sun Sep 23 2012 Kalev Lember <kalevlember at gmail.com> - 3.12.2-2
 - Avoid changing the libgladui soname
 


More information about the scm-commits mailing list