summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-10-19 03:51:21 +0000
committerMatthias Clasen <mclasen@redhat.com>2022-10-19 03:51:21 +0000
commit741567868ee5a602b4b469765ebe3bea01985b09 (patch)
tree6ffcd3ff3ed3a6fc8a739f4a83bf912beb6038c1
parent77d1f0d98253d7474e453c92857c9109d71bf6ec (diff)
parent55ccaf9df9af4322266fa79cfad144575c16f23d (diff)
downloadgtk+-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.ui5
-rw-r--r--gtk/gtkmodelbutton.c25
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]);
}