diff options
author | Matthias Clasen <mclasen@redhat.com> | 2019-06-17 12:20:36 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2019-06-18 15:36:29 +0000 |
commit | 07364bc5976e290d9239eb73d206fed1065d2f49 (patch) | |
tree | 2b1c37211537d5de901a139a105ba07c58d497fb | |
parent | 8634082fe3699f9ec39375df264c7e7134082fa7 (diff) | |
download | gtk+-widget-class-actions.tar.gz |
window: Add a focus.move actionwidget-class-actions
This is a first step towards redoing bindings with actions.
-rw-r--r-- | gtk/gtkwindow.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 5a4f8f76f5..955663d2fe 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -495,6 +495,9 @@ static void gtk_window_set_theme_variant (GtkWindow *window); static void gtk_window_activate_default_activate (GtkWidget *widget, const char *action_name, GVariant *parameter); +static void gtk_window_activate_focus_move (GtkWidget *widget, + const char *action_name, + GVariant *parameter); static void gtk_window_do_popup (GtkWindow *window, GdkEventButton *event); @@ -1203,6 +1206,9 @@ gtk_window_class_init (GtkWindowClass *klass) gtk_widget_class_install_action (widget_class, "default.activate", gtk_window_activate_default_activate); + gtk_widget_class_install_stateful_action (widget_class, "focus.move", + gtk_window_activate_focus_move, + "i", NULL, NULL); } /** @@ -1781,6 +1787,17 @@ gtk_window_activate_default_activate (GtkWidget *widget, } static void +gtk_window_activate_focus_move (GtkWidget *widget, + const char *action_name, + GVariant *parameter) +{ + gtk_window_move_focus (widget, + CLAMP (g_variant_get_int32 (parameter), + GTK_DIR_TAB_FORWARD, + GTK_DIR_RIGHT)); +} + +static void gtk_window_init (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); |