[gtk/wip/ebassi/shortcut: 24/85] textview: Port bindings to use shortcuts
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/ebassi/shortcut: 24/85] textview: Port bindings to use shortcuts
- Date: Fri, 31 Jan 2020 16:01:51 +0000 (UTC)
commit 41a0b2ecd0a6439017d2f0673ecf8c98fad50013
Author: Benjamin Otte <otte redhat com>
Date: Sun Aug 12 03:24:26 2018 +0200
textview: Port bindings to use shortcuts
gtk/gtktextview.c | 323 ++++++++++++++++++++++++++++++------------------------
1 file changed, 179 insertions(+), 144 deletions(-)
---
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index dea5a11f11..058a21bee1 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -30,8 +30,8 @@
#include <string.h>
#include "gtkadjustmentprivate.h"
-#include "gtkbindings.h"
#include "gtkcsscolorvalueprivate.h"
+#include "gtkdnd.h"
#include "gtkdebug.h"
#include "gtkintl.h"
#include "gtkmain.h"
@@ -662,7 +662,7 @@ G_DEFINE_TYPE_WITH_CODE (GtkTextView, gtk_text_view, GTK_TYPE_CONTAINER,
G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL))
static void
-add_move_binding (GtkBindingSet *binding_set,
+add_move_binding (GtkWidgetClass *widget_class,
guint keyval,
guint modmask,
GtkMovementStep step,
@@ -670,18 +670,16 @@ add_move_binding (GtkBindingSet *binding_set,
{
g_assert ((modmask & GDK_SHIFT_MASK) == 0);
- gtk_binding_entry_add_signal (binding_set, keyval, modmask,
- "move-cursor", 3,
- G_TYPE_ENUM, step,
- G_TYPE_INT, count,
- G_TYPE_BOOLEAN, FALSE);
+ gtk_widget_class_add_binding_signal (widget_class,
+ keyval, modmask,
+ "move-cursor",
+ "(iib)", step, count, FALSE);
/* Selection-extending version */
- gtk_binding_entry_add_signal (binding_set, keyval, modmask | GDK_SHIFT_MASK,
- "move-cursor", 3,
- G_TYPE_ENUM, step,
- G_TYPE_INT, count,
- G_TYPE_BOOLEAN, TRUE);
+ gtk_widget_class_add_binding_signal (widget_class,
+ keyval, modmask | GDK_SHIFT_MASK,
+ "move-cursor",
+ "(iib)", step, count, TRUE);
}
static void
@@ -690,7 +688,6 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
- GtkBindingSet *binding_set;
/* Default handlers and virtual methods
*/
@@ -1359,193 +1356,217 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
* Key bindings
*/
- binding_set = gtk_binding_set_by_class (klass);
-
/* Moving the insertion point */
- add_move_binding (binding_set, GDK_KEY_Right, 0,
+ add_move_binding (widget_class, GDK_KEY_Right, 0,
GTK_MOVEMENT_VISUAL_POSITIONS, 1);
- add_move_binding (binding_set, GDK_KEY_KP_Right, 0,
+ add_move_binding (widget_class, GDK_KEY_KP_Right, 0,
GTK_MOVEMENT_VISUAL_POSITIONS, 1);
- add_move_binding (binding_set, GDK_KEY_Left, 0,
+ add_move_binding (widget_class, GDK_KEY_Left, 0,
GTK_MOVEMENT_VISUAL_POSITIONS, -1);
- add_move_binding (binding_set, GDK_KEY_KP_Left, 0,
+ add_move_binding (widget_class, GDK_KEY_KP_Left, 0,
GTK_MOVEMENT_VISUAL_POSITIONS, -1);
- add_move_binding (binding_set, GDK_KEY_Right, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_Right, GDK_CONTROL_MASK,
GTK_MOVEMENT_WORDS, 1);
- add_move_binding (binding_set, GDK_KEY_KP_Right, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_KP_Right, GDK_CONTROL_MASK,
GTK_MOVEMENT_WORDS, 1);
- add_move_binding (binding_set, GDK_KEY_Left, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_Left, GDK_CONTROL_MASK,
GTK_MOVEMENT_WORDS, -1);
- add_move_binding (binding_set, GDK_KEY_KP_Left, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_KP_Left, GDK_CONTROL_MASK,
GTK_MOVEMENT_WORDS, -1);
- add_move_binding (binding_set, GDK_KEY_Up, 0,
+ add_move_binding (widget_class, GDK_KEY_Up, 0,
GTK_MOVEMENT_DISPLAY_LINES, -1);
- add_move_binding (binding_set, GDK_KEY_KP_Up, 0,
+ add_move_binding (widget_class, GDK_KEY_KP_Up, 0,
GTK_MOVEMENT_DISPLAY_LINES, -1);
- add_move_binding (binding_set, GDK_KEY_Down, 0,
+ add_move_binding (widget_class, GDK_KEY_Down, 0,
GTK_MOVEMENT_DISPLAY_LINES, 1);
- add_move_binding (binding_set, GDK_KEY_KP_Down, 0,
+ add_move_binding (widget_class, GDK_KEY_KP_Down, 0,
GTK_MOVEMENT_DISPLAY_LINES, 1);
- add_move_binding (binding_set, GDK_KEY_Up, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_Up, GDK_CONTROL_MASK,
GTK_MOVEMENT_PARAGRAPHS, -1);
- add_move_binding (binding_set, GDK_KEY_KP_Up, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_KP_Up, GDK_CONTROL_MASK,
GTK_MOVEMENT_PARAGRAPHS, -1);
- add_move_binding (binding_set, GDK_KEY_Down, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_Down, GDK_CONTROL_MASK,
GTK_MOVEMENT_PARAGRAPHS, 1);
- add_move_binding (binding_set, GDK_KEY_KP_Down, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_KP_Down, GDK_CONTROL_MASK,
GTK_MOVEMENT_PARAGRAPHS, 1);
- add_move_binding (binding_set, GDK_KEY_Home, 0,
+ add_move_binding (widget_class, GDK_KEY_Home, 0,
GTK_MOVEMENT_DISPLAY_LINE_ENDS, -1);
- add_move_binding (binding_set, GDK_KEY_KP_Home, 0,
+ add_move_binding (widget_class, GDK_KEY_KP_Home, 0,
GTK_MOVEMENT_DISPLAY_LINE_ENDS, -1);
- add_move_binding (binding_set, GDK_KEY_End, 0,
+ add_move_binding (widget_class, GDK_KEY_End, 0,
GTK_MOVEMENT_DISPLAY_LINE_ENDS, 1);
- add_move_binding (binding_set, GDK_KEY_KP_End, 0,
+ add_move_binding (widget_class, GDK_KEY_KP_End, 0,
GTK_MOVEMENT_DISPLAY_LINE_ENDS, 1);
- add_move_binding (binding_set, GDK_KEY_Home, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_Home, GDK_CONTROL_MASK,
GTK_MOVEMENT_BUFFER_ENDS, -1);
- add_move_binding (binding_set, GDK_KEY_KP_Home, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_KP_Home, GDK_CONTROL_MASK,
GTK_MOVEMENT_BUFFER_ENDS, -1);
- add_move_binding (binding_set, GDK_KEY_End, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_End, GDK_CONTROL_MASK,
GTK_MOVEMENT_BUFFER_ENDS, 1);
- add_move_binding (binding_set, GDK_KEY_KP_End, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_KP_End, GDK_CONTROL_MASK,
GTK_MOVEMENT_BUFFER_ENDS, 1);
- add_move_binding (binding_set, GDK_KEY_Page_Up, 0,
+ add_move_binding (widget_class, GDK_KEY_Page_Up, 0,
GTK_MOVEMENT_PAGES, -1);
- add_move_binding (binding_set, GDK_KEY_KP_Page_Up, 0,
+ add_move_binding (widget_class, GDK_KEY_KP_Page_Up, 0,
GTK_MOVEMENT_PAGES, -1);
- add_move_binding (binding_set, GDK_KEY_Page_Down, 0,
+ add_move_binding (widget_class, GDK_KEY_Page_Down, 0,
GTK_MOVEMENT_PAGES, 1);
- add_move_binding (binding_set, GDK_KEY_KP_Page_Down, 0,
+ add_move_binding (widget_class, GDK_KEY_KP_Page_Down, 0,
GTK_MOVEMENT_PAGES, 1);
- add_move_binding (binding_set, GDK_KEY_Page_Up, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_Page_Up, GDK_CONTROL_MASK,
GTK_MOVEMENT_HORIZONTAL_PAGES, -1);
- add_move_binding (binding_set, GDK_KEY_KP_Page_Up, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_KP_Page_Up, GDK_CONTROL_MASK,
GTK_MOVEMENT_HORIZONTAL_PAGES, -1);
- add_move_binding (binding_set, GDK_KEY_Page_Down, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_Page_Down, GDK_CONTROL_MASK,
GTK_MOVEMENT_HORIZONTAL_PAGES, 1);
- add_move_binding (binding_set, GDK_KEY_KP_Page_Down, GDK_CONTROL_MASK,
+ add_move_binding (widget_class, GDK_KEY_KP_Page_Down, GDK_CONTROL_MASK,
GTK_MOVEMENT_HORIZONTAL_PAGES, 1);
/* Select all */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_a, GDK_CONTROL_MASK,
- "select-all", 1,
- G_TYPE_BOOLEAN, TRUE);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_slash, GDK_CONTROL_MASK,
- "select-all", 1,
- G_TYPE_BOOLEAN, TRUE);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_a, GDK_CONTROL_MASK,
+ "select-all",
+ "(b)", TRUE);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_slash, GDK_CONTROL_MASK,
+ "select-all",
+ "(b)", TRUE);
/* Unselect all */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_backslash, GDK_CONTROL_MASK,
- "select-all", 1,
- G_TYPE_BOOLEAN, FALSE);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_backslash, GDK_CONTROL_MASK,
+ "select-all",
+ "(b)", FALSE);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_a, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
- "select-all", 1,
- G_TYPE_BOOLEAN, FALSE);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_a, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "select-all",
+ "(b)", FALSE);
/* Deleting text */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Delete, 0,
- "delete-from-cursor", 2,
- G_TYPE_ENUM, GTK_DELETE_CHARS,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Delete, 0,
- "delete-from-cursor", 2,
- G_TYPE_ENUM, GTK_DELETE_CHARS,
- G_TYPE_INT, 1);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Delete, 0,
+ "delete-from-cursor",
+ "(ii)", GTK_DELETE_CHARS, 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Delete, 0,
+ "delete-from-cursor",
+ "(ii)", GTK_DELETE_CHARS, 1);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_BackSpace, 0,
- "backspace", 0);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_BackSpace, 0,
+ "backspace",
+ NULL);
/* Make this do the same as Backspace, to help with mis-typing */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_BackSpace, GDK_SHIFT_MASK,
- "backspace", 0);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Delete, GDK_CONTROL_MASK,
- "delete-from-cursor", 2,
- G_TYPE_ENUM, GTK_DELETE_WORD_ENDS,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Delete, GDK_CONTROL_MASK,
- "delete-from-cursor", 2,
- G_TYPE_ENUM, GTK_DELETE_WORD_ENDS,
- G_TYPE_INT, 1);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_BackSpace, GDK_SHIFT_MASK,
+ "backspace",
+ NULL);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Delete, GDK_CONTROL_MASK,
+ "delete-from-cursor",
+ "(ii)", GTK_DELETE_WORD_ENDS, 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Delete, GDK_CONTROL_MASK,
+ "delete-from-cursor",
+ "(ii)", GTK_DELETE_WORD_ENDS, 1);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_BackSpace, GDK_CONTROL_MASK,
- "delete-from-cursor", 2,
- G_TYPE_ENUM, GTK_DELETE_WORD_ENDS,
- G_TYPE_INT, -1);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Delete, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
- "delete-from-cursor", 2,
- G_TYPE_ENUM, GTK_DELETE_PARAGRAPH_ENDS,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Delete, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
- "delete-from-cursor", 2,
- G_TYPE_ENUM, GTK_DELETE_PARAGRAPH_ENDS,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_BackSpace, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
- "delete-from-cursor", 2,
- G_TYPE_ENUM, GTK_DELETE_PARAGRAPH_ENDS,
- G_TYPE_INT, -1);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_BackSpace, GDK_CONTROL_MASK,
+ "delete-from-cursor",
+ "(ii)", GTK_DELETE_WORD_ENDS, -1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Delete, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "delete-from-cursor",
+ "(ii)", GTK_DELETE_PARAGRAPH_ENDS, 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Delete, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "delete-from-cursor",
+ "(ii)", GTK_DELETE_PARAGRAPH_ENDS, 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_BackSpace, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "delete-from-cursor",
+ "(ii)", GTK_DELETE_PARAGRAPH_ENDS, -1);
/* Cut/copy/paste */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_x, GDK_CONTROL_MASK,
- "cut-clipboard", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_c, GDK_CONTROL_MASK,
- "copy-clipboard", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_v, GDK_CONTROL_MASK,
- "paste-clipboard", 0);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Delete, GDK_SHIFT_MASK,
- "cut-clipboard", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Insert, GDK_CONTROL_MASK,
- "copy-clipboard", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Insert, GDK_SHIFT_MASK,
- "paste-clipboard", 0);
-
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Delete, GDK_SHIFT_MASK,
- "cut-clipboard", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Insert, GDK_CONTROL_MASK,
- "copy-clipboard", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK,
- "paste-clipboard", 0);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_x, GDK_CONTROL_MASK,
+ "cut-clipboard",
+ NULL);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_c, GDK_CONTROL_MASK,
+ "copy-clipboard",
+ NULL);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_v, GDK_CONTROL_MASK,
+ "paste-clipboard",
+ NULL);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Delete, GDK_SHIFT_MASK,
+ "cut-clipboard",
+ NULL);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Insert, GDK_CONTROL_MASK,
+ "copy-clipboard",
+ NULL);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Insert, GDK_SHIFT_MASK,
+ "paste-clipboard",
+ NULL);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Delete, GDK_SHIFT_MASK,
+ "cut-clipboard",
+ NULL);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Insert, GDK_CONTROL_MASK,
+ "copy-clipboard",
+ NULL);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Insert, GDK_SHIFT_MASK,
+ "paste-clipboard",
+ NULL);
/* Undo/Redo */
gtk_binding_entry_add_action (binding_set, GDK_KEY_z, GDK_CONTROL_MASK,
@@ -1556,35 +1577,49 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
"text.redo", NULL);
/* Overwrite */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Insert, 0,
- "toggle-overwrite", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Insert, 0,
- "toggle-overwrite", 0);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Insert, 0,
+ "toggle-overwrite",
+ NULL);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Insert, 0,
+ "toggle-overwrite",
+ NULL);
/* Emoji */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_period, GDK_CONTROL_MASK,
- "insert-emoji", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_semicolon, GDK_CONTROL_MASK,
- "insert-emoji", 0);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_period, GDK_CONTROL_MASK,
+ "insert-emoji",
+ NULL);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_semicolon, GDK_CONTROL_MASK,
+ "insert-emoji",
+ NULL);
/* Caret mode */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_F7, 0,
- "toggle-cursor-visible", 0);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_F7, 0,
+ "toggle-cursor-visible",
+ NULL);
/* Control-tab focus motion */
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Tab, GDK_CONTROL_MASK,
- "move-focus", 1,
- GTK_TYPE_DIRECTION_TYPE, GTK_DIR_TAB_FORWARD);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Tab, GDK_CONTROL_MASK,
- "move-focus", 1,
- GTK_TYPE_DIRECTION_TYPE, GTK_DIR_TAB_FORWARD);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Tab, GDK_CONTROL_MASK,
+ "move-focus",
+ "(i)", GTK_DIR_TAB_FORWARD);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Tab, GDK_CONTROL_MASK,
+ "move-focus",
+ "(i)", GTK_DIR_TAB_FORWARD);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Tab, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
- "move-focus", 1,
- GTK_TYPE_DIRECTION_TYPE, GTK_DIR_TAB_BACKWARD);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Tab, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
- "move-focus", 1,
- GTK_TYPE_DIRECTION_TYPE, GTK_DIR_TAB_BACKWARD);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_Tab, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "move-focus",
+ "(i)", GTK_DIR_TAB_BACKWARD);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_KEY_KP_Tab, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "move-focus",
+ "(i)", GTK_DIR_TAB_BACKWARD);
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TEXT_VIEW_ACCESSIBLE);
gtk_widget_class_set_css_name (widget_class, I_("textview"));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]