From 82027bb51ef9657049843cb950d5bc738b149f67 Mon Sep 17 00:00:00 2001 From: Arjan Molenaar Date: Tue, 21 May 2024 21:59:48 +0200 Subject: [PATCH] macos: Add macos key binding to GtkLabel --- gtk/gtklabel.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 56e8cd7d44..f18b453745 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -2740,6 +2740,12 @@ gtk_label_class_init (GtkLabelClass *class) GTK_MOVEMENT_WORDS, -1); /* select all */ +#ifdef __APPLE__ + gtk_widget_class_add_binding (widget_class, + GDK_KEY_a, GDK_META_MASK, + (GtkShortcutFunc) gtk_label_select_all, + NULL); +#else gtk_widget_class_add_binding (widget_class, GDK_KEY_a, GDK_CONTROL_MASK, (GtkShortcutFunc) gtk_label_select_all, @@ -2748,8 +2754,15 @@ gtk_label_class_init (GtkLabelClass *class) GDK_KEY_slash, GDK_CONTROL_MASK, (GtkShortcutFunc) gtk_label_select_all, NULL); +#endif /* unselect all */ +#ifdef __APPLE__ + gtk_widget_class_add_binding_signal (widget_class, + GDK_KEY_a, GDK_SHIFT_MASK | GDK_META_MASK, + "move-cursor", + "(iib)", GTK_MOVEMENT_PARAGRAPH_ENDS, 0, FALSE); +#else gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_a, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "move-cursor", @@ -2759,6 +2772,7 @@ gtk_label_class_init (GtkLabelClass *class) GDK_KEY_backslash, GDK_CONTROL_MASK, "move-cursor", "(iib)", GTK_MOVEMENT_PARAGRAPH_ENDS, 0, FALSE); +#endif add_move_binding (widget_class, GDK_KEY_f, GDK_ALT_MASK, GTK_MOVEMENT_WORDS, 1); @@ -2790,11 +2804,56 @@ gtk_label_class_init (GtkLabelClass *class) add_move_binding (widget_class, GDK_KEY_KP_End, GDK_CONTROL_MASK, GTK_MOVEMENT_BUFFER_ENDS, 1); +#ifdef __APPLE__ + add_move_binding (widget_class, GDK_KEY_Right, GDK_ALT_MASK, + GTK_MOVEMENT_WORDS, 1); + + add_move_binding (widget_class, GDK_KEY_Left, GDK_ALT_MASK, + GTK_MOVEMENT_WORDS, -1); + + add_move_binding (widget_class, GDK_KEY_KP_Right, GDK_ALT_MASK, + GTK_MOVEMENT_WORDS, 1); + + add_move_binding (widget_class, GDK_KEY_KP_Left, GDK_ALT_MASK, + GTK_MOVEMENT_WORDS, -1); + + add_move_binding (widget_class, GDK_KEY_Right, GDK_ALT_MASK, + GTK_MOVEMENT_DISPLAY_LINE_ENDS, 1); + + add_move_binding (widget_class, GDK_KEY_Left, GDK_ALT_MASK, + GTK_MOVEMENT_DISPLAY_LINE_ENDS, -1); + + add_move_binding (widget_class, GDK_KEY_KP_Right, GDK_ALT_MASK, + GTK_MOVEMENT_DISPLAY_LINE_ENDS, 1); + + add_move_binding (widget_class, GDK_KEY_KP_Left, GDK_ALT_MASK, + GTK_MOVEMENT_DISPLAY_LINE_ENDS, -1); + + add_move_binding (widget_class, GDK_KEY_Up, GDK_META_MASK, + GTK_MOVEMENT_BUFFER_ENDS, -1); + + add_move_binding (widget_class, GDK_KEY_Down, GDK_META_MASK, + GTK_MOVEMENT_BUFFER_ENDS, 1); + + add_move_binding (widget_class, GDK_KEY_KP_Up, GDK_META_MASK, + GTK_MOVEMENT_BUFFER_ENDS, -1); + + add_move_binding (widget_class, GDK_KEY_KP_Down, GDK_META_MASK, + GTK_MOVEMENT_BUFFER_ENDS, 1); +#endif + /* copy */ +#ifdef __APPLE__ + gtk_widget_class_add_binding_signal (widget_class, + GDK_KEY_c, GDK_META_MASK, + "copy-clipboard", + NULL); +#else gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_c, GDK_CONTROL_MASK, "copy-clipboard", NULL); +#endif gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_Return, 0,