window: Add a focus.move action

This is a first step towards redoing bindings with actions.
This commit is contained in:
Matthias Clasen
2019-06-17 12:20:36 +00:00
parent 8634082fe3
commit 07364bc597

View File

@@ -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);
}
/**
@@ -1780,6 +1786,17 @@ gtk_window_activate_default_activate (GtkWidget *widget,
gtk_window_real_activate_default (GTK_WINDOW (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)
{