diff options
author | Matthias Clasen <mclasen@redhat.com> | 2022-10-19 03:51:21 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2022-10-19 03:51:21 +0000 |
commit | 741567868ee5a602b4b469765ebe3bea01985b09 (patch) | |
tree | 6ffcd3ff3ed3a6fc8a739f4a83bf912beb6038c1 | |
parent | 77d1f0d98253d7474e453c92857c9109d71bf6ec (diff) | |
parent | 55ccaf9df9af4322266fa79cfad144575c16f23d (diff) | |
download | gtk+-741567868ee5a602b4b469765ebe3bea01985b09.tar.gz |
Merge branch 'modelbutton-tooltip' into 'main'
widgetfactory: Add text to iconic model buttons
Closes #5220
See merge request GNOME/gtk!5136
-rw-r--r-- | demos/widget-factory/widget-factory.ui | 5 | ||||
-rw-r--r-- | gtk/gtkmodelbutton.c | 25 |
2 files changed, 28 insertions, 2 deletions
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui index 7f8c1699d8..db55c43cc4 100644 --- a/demos/widget-factory/widget-factory.ui +++ b/demos/widget-factory/widget-factory.ui @@ -3345,10 +3345,12 @@ bad things might happen.</property> <attribute name="display-hint">circular-buttons</attribute> <item> <attribute name="verb-icon">printer-symbolic</attribute> + <attribute name="label" translatable="yes">Print all the things!</attribute> <attribute name="action">win.print</attribute> </item> <item> <attribute name="verb-icon">emblem-shared-symbolic</attribute> + <attribute name="label" translatable="yes">Share all the things!</attribute> <attribute name="action">app.share</attribute> </item> </section> @@ -3363,14 +3365,17 @@ bad things might happen.</property> <attribute name="label" translatable="yes">Edit</attribute> <item> <attribute name="verb-icon">edit-cut-symbolic</attribute> + <attribute name="label" translatable="yes">Cut</attribute> <attribute name="action">app.cut</attribute> </item> <item> <attribute name="verb-icon">edit-copy-symbolic</attribute> + <attribute name="label" translatable="yes">Copy</attribute> <attribute name="action">app.copy</attribute> </item> <item> <attribute name="verb-icon">edit-paste-symbolic</attribute> + <attribute name="label" translatable="yes">Paste</attribute> <attribute name="action">app.paste</attribute> </item> </section> diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c index c24115dd1a..c6565af843 100644 --- a/gtk/gtkmodelbutton.c +++ b/gtk/gtkmodelbutton.c @@ -641,6 +641,22 @@ update_visibility (GtkModelButton *self) } static void +update_tooltip (GtkModelButton *self) +{ + if (self->iconic) + { + if (gtk_label_get_use_markup (GTK_LABEL (self->label))) + gtk_widget_set_tooltip_markup (GTK_WIDGET (self), gtk_label_get_text (GTK_LABEL (self->label))); + else + gtk_widget_set_tooltip_text (GTK_WIDGET (self), gtk_label_get_text (GTK_LABEL (self->label))); + } + else + { + gtk_widget_set_tooltip_text (GTK_WIDGET (self), NULL); + } +} + +static void gtk_model_button_set_icon (GtkModelButton *self, GIcon *icon) { @@ -662,6 +678,8 @@ gtk_model_button_set_icon (GtkModelButton *self, } update_visibility (self); + update_tooltip (self); + g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ICON]); } @@ -669,9 +687,9 @@ static void gtk_model_button_set_text (GtkModelButton *button, const char *text) { - gtk_label_set_text_with_mnemonic (GTK_LABEL (button->label), - text ? text : ""); + gtk_label_set_text_with_mnemonic (GTK_LABEL (button->label), text ? text : ""); update_visibility (button); + update_tooltip (button); gtk_accessible_update_relation (GTK_ACCESSIBLE (button), GTK_ACCESSIBLE_RELATION_LABELLED_BY, button->label, NULL, @@ -690,6 +708,8 @@ gtk_model_button_set_use_markup (GtkModelButton *button, gtk_label_set_use_markup (GTK_LABEL (button->label), use_markup); update_visibility (button); + update_tooltip (button); + g_object_notify_by_pspec (G_OBJECT (button), properties[PROP_USE_MARKUP]); } @@ -769,6 +789,7 @@ gtk_model_button_set_iconic (GtkModelButton *self, update_node_name (self); update_visibility (self); + update_tooltip (self); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ICONIC]); } |