forked from AuroraMiddleware/gtk
window: Port bindings to use shortcuts
This commit is contained in:
parent
c7f10e570e
commit
0f6c5da28d
@ -28,7 +28,6 @@
|
||||
|
||||
#include "gtkaccelgroupprivate.h"
|
||||
#include "gtkapplicationprivate.h"
|
||||
#include "gtkbindings.h"
|
||||
#include "gtkbox.h"
|
||||
#include "gtkbuildable.h"
|
||||
#include "gtkbuilderprivate.h"
|
||||
@ -566,37 +565,45 @@ G_DEFINE_TYPE_WITH_CODE (GtkWindow, gtk_window, GTK_TYPE_BIN,
|
||||
gtk_window_root_interface_init))
|
||||
|
||||
static void
|
||||
add_tab_bindings (GtkBindingSet *binding_set,
|
||||
add_tab_bindings (GtkWidgetClass *widget_class,
|
||||
GdkModifierType modifiers,
|
||||
GtkDirectionType direction)
|
||||
{
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Tab, modifiers,
|
||||
"move-focus", 1,
|
||||
GTK_TYPE_DIRECTION_TYPE, direction);
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Tab, modifiers,
|
||||
"move-focus", 1,
|
||||
GTK_TYPE_DIRECTION_TYPE, direction);
|
||||
gtk_widget_class_add_binding_signal (widget_class,
|
||||
GDK_KEY_Tab, modifiers,
|
||||
"move-focus",
|
||||
"(i)",
|
||||
direction);
|
||||
gtk_widget_class_add_binding_signal (widget_class,
|
||||
GDK_KEY_KP_Tab, modifiers,
|
||||
"move-focus",
|
||||
"(i)",
|
||||
direction);
|
||||
}
|
||||
|
||||
static void
|
||||
add_arrow_bindings (GtkBindingSet *binding_set,
|
||||
add_arrow_bindings (GtkWidgetClass *widget_class,
|
||||
guint keysym,
|
||||
GtkDirectionType direction)
|
||||
{
|
||||
guint keypad_keysym = keysym - GDK_KEY_Left + GDK_KEY_KP_Left;
|
||||
|
||||
gtk_binding_entry_add_signal (binding_set, keysym, 0,
|
||||
"move-focus", 1,
|
||||
GTK_TYPE_DIRECTION_TYPE, direction);
|
||||
gtk_binding_entry_add_signal (binding_set, keysym, GDK_CONTROL_MASK,
|
||||
"move-focus", 1,
|
||||
GTK_TYPE_DIRECTION_TYPE, direction);
|
||||
gtk_binding_entry_add_signal (binding_set, keypad_keysym, 0,
|
||||
"move-focus", 1,
|
||||
GTK_TYPE_DIRECTION_TYPE, direction);
|
||||
gtk_binding_entry_add_signal (binding_set, keypad_keysym, GDK_CONTROL_MASK,
|
||||
"move-focus", 1,
|
||||
GTK_TYPE_DIRECTION_TYPE, direction);
|
||||
gtk_widget_class_add_binding_signal (widget_class, keysym, 0,
|
||||
"move-focus",
|
||||
"(i)",
|
||||
direction);
|
||||
gtk_widget_class_add_binding_signal (widget_class, keysym, GDK_CONTROL_MASK,
|
||||
"move-focus",
|
||||
"(i)",
|
||||
direction);
|
||||
gtk_widget_class_add_binding_signal (widget_class, keypad_keysym, 0,
|
||||
"move-focus",
|
||||
"(i)",
|
||||
direction);
|
||||
gtk_widget_class_add_binding_signal (widget_class, keypad_keysym, GDK_CONTROL_MASK,
|
||||
"move-focus",
|
||||
"(i)",
|
||||
direction);
|
||||
}
|
||||
|
||||
static guint32
|
||||
@ -759,7 +766,6 @@ gtk_window_class_init (GtkWindowClass *klass)
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
GtkWidgetClass *widget_class;
|
||||
GtkContainerClass *container_class;
|
||||
GtkBindingSet *binding_set;
|
||||
|
||||
widget_class = (GtkWidgetClass*) klass;
|
||||
container_class = (GtkContainerClass*) klass;
|
||||
@ -1105,36 +1111,32 @@ gtk_window_class_init (GtkWindowClass *klass)
|
||||
gtk_widget_class_install_action (widget_class, "default.activate", NULL,
|
||||
gtk_window_activate_default_activate);
|
||||
|
||||
binding_set = gtk_binding_set_by_class (klass);
|
||||
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_space, 0,
|
||||
"activate-focus", NULL);
|
||||
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_KP_Space, 0,
|
||||
"activate-focus", NULL);
|
||||
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_space, 0,
|
||||
"activate-focus", 0);
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Space, 0,
|
||||
"activate-focus", 0);
|
||||
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_binding_entry_add_signal (binding_set, GDK_KEY_Return, 0,
|
||||
"activate-default", 0);
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_ISO_Enter, 0,
|
||||
"activate-default", 0);
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Enter, 0,
|
||||
"activate-default", 0);
|
||||
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_I, GDK_CONTROL_MASK|GDK_SHIFT_MASK,
|
||||
"enable-debugging", "(b)", FALSE);
|
||||
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_D, GDK_CONTROL_MASK|GDK_SHIFT_MASK,
|
||||
"enable-debugging", "(b)", TRUE);
|
||||
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_I, GDK_CONTROL_MASK|GDK_SHIFT_MASK,
|
||||
"enable-debugging", 1,
|
||||
G_TYPE_BOOLEAN, FALSE);
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_D, GDK_CONTROL_MASK|GDK_SHIFT_MASK,
|
||||
"enable-debugging", 1,
|
||||
G_TYPE_BOOLEAN, TRUE);
|
||||
add_arrow_bindings (widget_class, GDK_KEY_Up, GTK_DIR_UP);
|
||||
add_arrow_bindings (widget_class, GDK_KEY_Down, GTK_DIR_DOWN);
|
||||
add_arrow_bindings (widget_class, GDK_KEY_Left, GTK_DIR_LEFT);
|
||||
add_arrow_bindings (widget_class, GDK_KEY_Right, GTK_DIR_RIGHT);
|
||||
|
||||
add_arrow_bindings (binding_set, GDK_KEY_Up, GTK_DIR_UP);
|
||||
add_arrow_bindings (binding_set, GDK_KEY_Down, GTK_DIR_DOWN);
|
||||
add_arrow_bindings (binding_set, GDK_KEY_Left, GTK_DIR_LEFT);
|
||||
add_arrow_bindings (binding_set, GDK_KEY_Right, GTK_DIR_RIGHT);
|
||||
|
||||
add_tab_bindings (binding_set, 0, GTK_DIR_TAB_FORWARD);
|
||||
add_tab_bindings (binding_set, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD);
|
||||
add_tab_bindings (binding_set, GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
|
||||
add_tab_bindings (binding_set, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
|
||||
add_tab_bindings (widget_class, 0, GTK_DIR_TAB_FORWARD);
|
||||
add_tab_bindings (widget_class, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD);
|
||||
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_set_accessible_type (widget_class, GTK_TYPE_WINDOW_ACCESSIBLE);
|
||||
gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FRAME);
|
||||
|
Loading…
Reference in New Issue
Block a user