diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-01-19 17:06:05 +0000 |
---|---|---|
committer | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2022-04-21 10:31:12 -0300 |
commit | fbebfdbf0dde1ed98c9e28be511693b8c374929d (patch) | |
tree | fd14878f47b748ace9e9ee355e87109fb2b1115c | |
parent | 49c570076f736c1dab17a82ad3241921549a84bf (diff) | |
download | glade-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.c | 22 |
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); |