window: Add a focus.move action
This is a first step towards redoing bindings with actions.
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user