[glade] sync draw-indicator on setting xalign



commit fbebfdbf0dde1ed98c9e28be511693b8c374929d
Author: Caolán McNamara <caolanm redhat com>
Date:   Tue Jan 19 17:06:05 2021 +0000

    sync draw-indicator on setting xalign
    
    so for GtkCheckButtons/GtkRadioButtons the label is shown in glade's
    inline preview with the same alignment that GTK will use when really
    renderering it
    
    https://gitlab.gnome.org/GNOME/glade/-/issues/502

 plugins/gtk+/glade-gtk-button.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
---
diff --git a/plugins/gtk+/glade-gtk-button.c b/plugins/gtk+/glade-gtk-button.c
index f3d9b6a5..a6d9208c 100644
--- a/plugins/gtk+/glade-gtk-button.c
+++ b/plugins/gtk+/glade-gtk-button.c
@@ -193,6 +193,19 @@ glade_gtk_lock_button_is_own_property (GladeProperty *property)
   return (spec->owner_type == GTK_TYPE_LOCK_BUTTON);
 }
 
+static void
+glade_gtk_sync_draw_indicator (GladeWidget *gwidget)
+{
+  gboolean draw_indicator = FALSE;
+  GladeProperty *prop = glade_widget_get_property (gwidget, "draw-indicator");
+  glade_property_get (prop, &draw_indicator);
+  if (draw_indicator)
+    {
+      glade_property_set (prop, FALSE);
+      glade_property_set (prop, TRUE);
+    }
+}
+
 void
 glade_gtk_button_set_property (GladeWidgetAdaptor *adaptor,
                                GObject            *object,
@@ -238,6 +251,15 @@ glade_gtk_button_set_property (GladeWidgetAdaptor *adaptor,
                                                         id, value);
       glade_gtk_sync_use_appearance (widget);
     }
+  else if (strcmp (id, "xalign") == 0)
+  {
+      GLADE_WIDGET_ADAPTOR_GET_ADAPTOR_CLASS (GTK_TYPE_CONTAINER)->set_property (adaptor, object,
+                                                        id, value);
+      /* if draw-indicator is set, force it to be set again so GtkCheckButton/GtkToggleButton has
+       * an opportunity to reset xalign to 0
+       */
+      glade_gtk_sync_draw_indicator(widget);
+  }
   else if (GLADE_PROPERTY_DEF_VERSION_CHECK (glade_property_get_def (property), gtk_major_version, 
gtk_minor_version + 1))
     GLADE_WIDGET_ADAPTOR_GET_ADAPTOR_CLASS (GTK_TYPE_CONTAINER)->set_property (adaptor, object, id, value);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]