From 6030465cdf6967065eb7631aa953a49af430dd10 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 11 Apr 2019 14:47:20 -0400 Subject: [PATCH] text: Add a context action for visibility This will be used by GtkPasswordEntry for amending the context menu. --- gtk/gtktext.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gtk/gtktext.c b/gtk/gtktext.c index ae703231ff..94e9cab270 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -5261,10 +5261,15 @@ gtk_text_set_visibility (GtkText *self, if (priv->visible != visible) { + GAction *action; + priv->visible = visible; g_object_notify (G_OBJECT (self), "visibility"); gtk_text_recompute (self); + + action = g_action_map_lookup_action (priv->context_actions, "toggle-visibility"); + g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (visible)); } } @@ -5662,6 +5667,15 @@ insert_emoji_activated (GSimpleAction *action, hide_selection_bubble (GTK_TEXT (user_data)); } +static void +toggle_visibility (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GtkText *text = GTK_TEXT (user_data); + gtk_text_set_visibility (text, !gtk_text_get_visibility (text)); +} + static void gtk_text_add_context_actions (GtkText *self) { @@ -5674,6 +5688,7 @@ gtk_text_add_context_actions (GtkText *self) { "delete-selection", delete_selection_activated, NULL, NULL, NULL }, { "select-all", select_all_activated, NULL, NULL, NULL }, { "insert-emoji", insert_emoji_activated, NULL, NULL, NULL }, + { "toggle-visibility", toggle_visibility, NULL, "true", NULL }, }; GSimpleActionGroup *actions = g_simple_action_group_new ();