summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-06-23 17:20:38 +0000
committerMatthias Clasen <mclasen@redhat.com>2019-06-24 22:40:29 +0000
commitb050572918485652971a9489cdb862d876a8dd0f (patch)
tree879b3252bfa0e458f7ab2c49a2480681aefb40c2
parentf6f8f4b7429c9ec7b308bdf542afe0505ea05828 (diff)
downloadgtk+-b050572918485652971a9489cdb862d876a8dd0f.tar.gz
popover: Switch activate-default to an action
This matches what we already did for GtkWindow.
-rw-r--r--gtk/gtkpopover.c45
-rw-r--r--gtk/gtkpopovermenu.c20
2 files changed, 16 insertions, 49 deletions
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index 6052bd80bd..f2d252c8af 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -486,8 +486,11 @@ allocate_contents (GtkGizmo *gizmo,
}
static void
-gtk_popover_activate_default (GtkPopover *popover)
+gtk_popover_activate_default_activate (GtkWidget *widget,
+ const char *action_name,
+ GVariant *parameter)
{
+ GtkPopover *popover = GTK_POPOVER (widget);
GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
GtkWidget *focus_widget;
@@ -504,31 +507,6 @@ gtk_popover_activate_default (GtkPopover *popover)
}
static void
-activate_default_cb (GSimpleAction *action,
- GVariant *parameter,
- gpointer data)
-{
- gtk_popover_activate_default (GTK_POPOVER (data));
-}
-
-static void
-add_actions (GtkPopover *popover)
-{
- GActionEntry entries[] = {
- { "activate", activate_default_cb, NULL, NULL, NULL },
- };
-
- GActionGroup *actions;
-
- actions = G_ACTION_GROUP (g_simple_action_group_new ());
- g_action_map_add_action_entries (G_ACTION_MAP (actions),
- entries, G_N_ELEMENTS (entries),
- popover);
- gtk_widget_insert_action_group (GTK_WIDGET (popover), "default", actions);
- g_object_unref (actions);
-}
-
-static void
node_style_changed_cb (GtkCssNode *node,
GtkCssStyleChange *change,
GtkWidget *widget)
@@ -579,8 +557,6 @@ gtk_popover_init (GtkPopover *popover)
context = gtk_widget_get_style_context (GTK_WIDGET (popover));
gtk_style_context_add_class (context, GTK_STYLE_CLASS_BACKGROUND);
-
- add_actions (popover);
}
static void
@@ -1328,8 +1304,6 @@ gtk_popover_class_init (GtkPopoverClass *klass)
container_class->add = gtk_popover_add;
container_class->remove = gtk_popover_remove;
- klass->activate_default = gtk_popover_activate_default;
-
properties[PROP_RELATIVE_TO] =
g_param_spec_object ("relative-to",
P_("Relative to"),
@@ -1384,15 +1358,8 @@ gtk_popover_class_init (GtkPopoverClass *klass)
G_TYPE_NONE,
0);
- signals[ACTIVATE_DEFAULT] =
- g_signal_new (I_("activate-default"),
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GtkPopoverClass, activate_default),
- NULL, NULL,
- NULL,
- G_TYPE_NONE,
- 0);
+ gtk_widget_class_install_action (widget_class, "default.activate", NULL,
+ gtk_popover_activate_default_activate);
gtk_widget_class_set_css_name (widget_class, "popover");
}
diff --git a/gtk/gtkpopovermenu.c b/gtk/gtkpopovermenu.c
index 735b51980f..29cbccd1cb 100644
--- a/gtk/gtkpopovermenu.c
+++ b/gtk/gtkpopovermenu.c
@@ -445,16 +445,16 @@ gtk_popover_menu_class_init (GtkPopoverMenuClass *klass)
add_tab_bindings (widget_class, GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
add_tab_bindings (widget_class, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
- gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_Return, 0,
- "activate-default", NULL);
- gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_ISO_Enter, 0,
- "activate-default", NULL);
- gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_KP_Enter, 0,
- "activate-default", NULL);
- gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_space, 0,
- "activate-default", NULL);
- gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_KP_Space, 0,
- "activate-default", NULL);
+ gtk_widget_class_bind_action (widget_class, GDK_KEY_Return, 0,
+ "default.activate", NULL);
+ gtk_widget_class_bind_action (widget_class, GDK_KEY_ISO_Enter, 0,
+ "default.activate", NULL);
+ gtk_widget_class_bind_action (widget_class, GDK_KEY_KP_Enter, 0,
+ "default.activate", NULL);
+ gtk_widget_class_bind_action (widget_class, GDK_KEY_space, 0,
+ "default.activate", NULL);
+ gtk_widget_class_bind_action (widget_class, GDK_KEY_KP_Space, 0,
+ "default.activate", NULL);
}
/**