diff --git a/gtk/gtkmenusectionbox.c b/gtk/gtkmenusectionbox.c index 6d3251e341..72ca8c8b1a 100644 --- a/gtk/gtkmenusectionbox.c +++ b/gtk/gtkmenusectionbox.c @@ -427,6 +427,7 @@ gtk_menu_section_box_insert_func (GtkMenuTrackerItem *item, else g_object_bind_property (item, "icon", widget, "icon", G_BINDING_SYNC_CREATE); + g_object_bind_property (item, "use-markup", widget, "use-markup", G_BINDING_SYNC_CREATE); g_object_bind_property (item, "sensitive", widget, "sensitive", G_BINDING_SYNC_CREATE); g_object_bind_property (item, "role", widget, "role", G_BINDING_SYNC_CREATE); g_object_bind_property (item, "toggled", widget, "active", G_BINDING_SYNC_CREATE); diff --git a/gtk/gtkmenutrackeritem.c b/gtk/gtkmenutrackeritem.c index 4e191221e2..70ac0de8aa 100644 --- a/gtk/gtkmenutrackeritem.c +++ b/gtk/gtkmenutrackeritem.c @@ -106,6 +106,7 @@ enum { PROP_0, PROP_IS_SEPARATOR, PROP_LABEL, + PROP_USE_MARKUP, PROP_ICON, PROP_VERB_ICON, PROP_SENSITIVE, @@ -162,6 +163,9 @@ gtk_menu_tracker_item_get_property (GObject *object, case PROP_LABEL: g_value_set_string (value, gtk_menu_tracker_item_get_label (self)); break; + case PROP_USE_MARKUP: + g_value_set_boolean (value, gtk_menu_tracker_item_get_use_markup (self)); + break; case PROP_ICON: g_value_take_object (value, gtk_menu_tracker_item_get_icon (self)); break; @@ -223,6 +227,8 @@ gtk_menu_tracker_item_class_init (GtkMenuTrackerItemClass *class) g_param_spec_boolean ("is-separator", "", "", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE); gtk_menu_tracker_item_pspecs[PROP_LABEL] = g_param_spec_string ("label", "", "", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE); + gtk_menu_tracker_item_pspecs[PROP_USE_MARKUP] = + g_param_spec_boolean ("use-markup", "", "", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE); gtk_menu_tracker_item_pspecs[PROP_ICON] = g_param_spec_object ("icon", "", "", G_TYPE_ICON, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE); gtk_menu_tracker_item_pspecs[PROP_VERB_ICON] = @@ -628,6 +634,12 @@ gtk_menu_tracker_item_get_label (GtkMenuTrackerItem *self) return label; } +gboolean +gtk_menu_tracker_item_get_use_markup (GtkMenuTrackerItem *self) +{ + return g_menu_item_get_attribute (self->item, "use-markup", "&s", NULL); +} + /*< private > * gtk_menu_tracker_item_get_icon: * diff --git a/gtk/gtkmenutrackeritemprivate.h b/gtk/gtkmenutrackeritemprivate.h index 6ebbc3764c..50343ba99e 100644 --- a/gtk/gtkmenutrackeritemprivate.h +++ b/gtk/gtkmenutrackeritemprivate.h @@ -66,6 +66,8 @@ gboolean gtk_menu_tracker_item_get_has_link (GtkMenu const char * gtk_menu_tracker_item_get_label (GtkMenuTrackerItem *self); +gboolean gtk_menu_tracker_item_get_use_markup (GtkMenuTrackerItem *self); + GIcon * gtk_menu_tracker_item_get_icon (GtkMenuTrackerItem *self); GIcon * gtk_menu_tracker_item_get_verb_icon (GtkMenuTrackerItem *self); diff --git a/gtk/gtkpopovermenu.c b/gtk/gtkpopovermenu.c index 9a3458584f..0c4f57ecf2 100644 --- a/gtk/gtkpopovermenu.c +++ b/gtk/gtkpopovermenu.c @@ -98,6 +98,7 @@ * The following attributes are used when constructing menu items: * * - "label": a user-visible string to display + * - "use-markup": whether the text in the menu item includes [Pango markup](https://docs.gtk.org/Pango/pango_markup.html) * - "action": the prefixed name of the action to trigger * - "target": the parameter to use when activating the action * - "icon" and "verb-icon": names of icons that may be displayed