diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-07-05 10:09:43 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-07-05 10:09:43 -0400 |
commit | 271afb7eabf4e5d2334b3895f2c5ad77395dac9d (patch) | |
tree | 275dfbd45f134ca2e401ddec0973b1649244cb34 | |
parent | 76133dbea7190454daaff3e991ec6b510724e659 (diff) | |
download | gtk+-271afb7eabf4e5d2334b3895f2c5ad77395dac9d.tar.gz |
font button: Make font buttons activatable again
The activation is simply forwarded to the toggle button
within.
-rw-r--r-- | gtk/gtkfontbutton.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gtk/gtkfontbutton.c b/gtk/gtkfontbutton.c index 2e2d136fdc..a207c5a403 100644 --- a/gtk/gtkfontbutton.c +++ b/gtk/gtkfontbutton.c @@ -110,12 +110,14 @@ struct _GtkFontButtonClass GtkWidgetClass parent_class; void (* font_set) (GtkFontButton *gfp); + void (* activate) (GtkFontButton *self); }; /* Signals */ enum { FONT_SET, + ACTIVATE, LAST_SIGNAL }; @@ -454,6 +456,12 @@ gtk_font_button_font_chooser_notify (GObject *object, } static void +gtk_font_button_activate (GtkFontButton *self) +{ + gtk_widget_activate (self->button); +} + +static void gtk_font_button_class_init (GtkFontButtonClass *klass) { GObjectClass *gobject_class; @@ -470,6 +478,7 @@ gtk_font_button_class_init (GtkFontButtonClass *klass) widget_class->focus = gtk_widget_focus_child; klass->font_set = NULL; + klass->activate = gtk_font_button_activate; _gtk_font_chooser_install_properties (gobject_class); @@ -546,6 +555,28 @@ gtk_font_button_class_init (GtkFontButtonClass *klass) NULL, G_TYPE_NONE, 0); + /** + * GtkFontButton::activate: + * @widget: the object which received the signal. + * + * Emitted to when the font button is activated. + * + * The `::activate` signal on `GtkFontButton` is an action signal and + * emitting it causes the button to present its dialog. + * + * Since: 4.4 + */ + font_button_signals[ACTIVATE] = + g_signal_new (I_ ("activate"), + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (GtkFontButtonClass, activate), + NULL, NULL, + NULL, + G_TYPE_NONE, 0); + + gtk_widget_class_set_activate_signal (widget_class, font_button_signals[ACTIVATE]); + gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); gtk_widget_class_set_css_name (widget_class, I_("fontbutton")); } |