summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-01-19 17:06:05 +0000
committerJuan Pablo Ugarte <juanpablougarte@gmail.com>2022-04-21 10:31:12 -0300
commitfbebfdbf0dde1ed98c9e28be511693b8c374929d (patch)
treefd14878f47b748ace9e9ee355e87109fb2b1115c
parent49c570076f736c1dab17a82ad3241921549a84bf (diff)
downloadglade-fbebfdbf0dde1ed98c9e28be511693b8c374929d.tar.gz
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
-rw-r--r--plugins/gtk+/glade-gtk-button.c22
1 files changed, 22 insertions, 0 deletions
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);