[gtksourceview/wip/chergert/gsv-gtk4] completion: track changes to shortcut activation
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/chergert/gsv-gtk4] completion: track changes to shortcut activation
- Date: Mon, 6 Apr 2020 18:56:03 +0000 (UTC)
commit e1172e167ec10f00da21d88a8ecd49a439489c98
Author: Christian Hergert <chergert redhat com>
Date: Mon Apr 6 11:55:18 2020 -0700
completion: track changes to shortcut activation
There will be further followup work here, but one of the big side-effects
is that we'll have to redesign event propagation for completion. It might
make sense to just overhaul completion at the same time given how much
the end APIs will change from things like:
- Window placement with new GDK APIs
- Icon changes from GTK icon theme
- Shortcut and keyboard activation
- List model usage for reduced overhead
- Removal of treeview
gtksourceview/gtksourcecompletion.c | 11 +-
gtksourceview/gtksourceview.c | 323 +++++++++++++++++++-----------------
2 files changed, 182 insertions(+), 152 deletions(-)
---
diff --git a/gtksourceview/gtksourcecompletion.c b/gtksourceview/gtksourcecompletion.c
index f59cbc31..503d0696 100644
--- a/gtksourceview/gtksourcecompletion.c
+++ b/gtksourceview/gtksourcecompletion.c
@@ -1253,6 +1253,7 @@ view_key_press_event_cb (GtkEventController *key,
GdkModifierType state,
GtkSourceCompletion *completion)
{
+#if 0
static gboolean mnemonic_keyval_set = FALSE;
static guint mnemonic_keyval = GDK_KEY_VoidSymbol;
GdkModifierType mod;
@@ -1306,6 +1307,7 @@ view_key_press_event_cb (GtkEventController *key,
{
return TRUE;
}
+#endif
return FALSE;
}
@@ -2229,7 +2231,6 @@ static void
gtk_source_completion_class_init (GtkSourceCompletionClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GtkBindingSet *binding_set;
object_class->get_property = gtk_source_completion_get_property;
object_class->set_property = gtk_source_completion_set_property;
@@ -2541,6 +2542,13 @@ gtk_source_completion_class_init (GtkSourceCompletionClass *klass)
G_CALLBACK (gtk_source_completion_activate_proposal),
NULL, NULL, NULL, G_TYPE_NONE, 0);
+#if 0
+
+ /* XXX: We cannot do keybindings with GObject's any more. This will
+ * need to be redesigned to keep events happening either from the
+ * completion info class or from the sourceview itself.
+ */
+
/* Key bindings */
binding_set = gtk_binding_set_by_class (klass);
@@ -2641,6 +2649,7 @@ gtk_source_completion_class_init (GtkSourceCompletionClass *klass)
2,
GTK_TYPE_SCROLL_STEP, GTK_SCROLL_ENDS,
G_TYPE_INT, 1);
+#endif
}
static void
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index d85c836f..ae1fe6d0 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -478,7 +478,6 @@ gtk_source_view_class_init (GtkSourceViewClass *klass)
{
GObjectClass *object_class;
GtkTextViewClass *textview_class;
- GtkBindingSet *binding_set;
GtkWidgetClass *widget_class;
object_class = G_OBJECT_CLASS (klass);
@@ -939,156 +938,178 @@ gtk_source_view_class_init (GtkSourceViewClass *klass)
gtk_widget_class_install_action (widget_class, "source.change-case", "s",
gtk_source_view_activate_change_case);
- binding_set = gtk_binding_set_by_class (klass);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_space,
- GDK_CONTROL_MASK,
- "show-completion", 0);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Up,
- GDK_MOD1_MASK,
- "move-lines", 1,
- G_TYPE_BOOLEAN, FALSE);
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Up,
- GDK_MOD1_MASK,
- "move-lines", 1,
- G_TYPE_BOOLEAN, FALSE);
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Down,
- GDK_MOD1_MASK,
- "move-lines", 1,
- G_TYPE_BOOLEAN, TRUE);
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Down,
- GDK_MOD1_MASK,
- "move-lines", 1,
- G_TYPE_BOOLEAN, TRUE);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Left,
- GDK_MOD1_MASK,
- "move-words", 1,
- G_TYPE_INT, -1);
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Left,
- GDK_MOD1_MASK,
- "move-words", 1,
- G_TYPE_INT, -1);
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Right,
- GDK_MOD1_MASK,
- "move-words", 1,
- G_TYPE_INT, 1);
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Right,
- GDK_MOD1_MASK,
- "move-words", 1,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Up,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_STEPS,
- G_TYPE_INT, -1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Up,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_STEPS,
- G_TYPE_INT, -1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Down,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_STEPS,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Down,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_STEPS,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Page_Up,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_PAGES,
- G_TYPE_INT, -1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Page_Up,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_PAGES,
- G_TYPE_INT, -1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Page_Down,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_PAGES,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Page_Down,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_PAGES,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_Home,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_ENDS,
- G_TYPE_INT, -1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_Home,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_ENDS,
- G_TYPE_INT, -1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_End,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_ENDS,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_KP_End,
- GDK_MOD1_MASK | GDK_SHIFT_MASK,
- "move-viewport", 2,
- GTK_TYPE_SCROLL_STEP, GTK_SCROLL_ENDS,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_percent,
- GDK_CONTROL_MASK,
- "move-to-matching-bracket", 1,
- G_TYPE_BOOLEAN, FALSE);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_a,
- GDK_CONTROL_MASK | GDK_SHIFT_MASK,
- "change-number", 1,
- G_TYPE_INT, 1);
-
- gtk_binding_entry_add_signal (binding_set,
- GDK_KEY_x,
- GDK_CONTROL_MASK | GDK_SHIFT_MASK,
- "change-number", 1,
- G_TYPE_INT, -1);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_CONTROL_MASK,
+ GDK_KEY_space,
+ "show-completion",
+ NULL);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK,
+ GDK_KEY_Up,
+ "move-lines",
+ "(b)",
+ FALSE);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK,
+ GDK_KEY_KP_Up,
+ "move-lines",
+ "(b)",
+ FALSE);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK,
+ GDK_KEY_Down,
+ "move-lines",
+ "(b)",
+ TRUE);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK,
+ GDK_KEY_KP_Down,
+ "move-lines",
+ "(b)",
+ TRUE);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK,
+ GDK_KEY_Left,
+ "move-words",
+ "(i)",
+ -1);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK,
+ GDK_KEY_KP_Left,
+ "move-words",
+ "(i)",
+ -1);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK,
+ GDK_KEY_Right,
+ "move-words",
+ "(i)",
+ 1);
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK,
+ GDK_KEY_KP_Right,
+ "move-words",
+ "(i)",
+ 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_Up,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_STEPS,
+ -1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_KP_Up,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_STEPS,
+ -1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_Down,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_STEPS,
+ 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_KP_Down,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_STEPS,
+ 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_Page_Up,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_PAGES,
+ -1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_KP_Page_Up,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_PAGES,
+ -1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_Page_Down,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_PAGES,
+ 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_KP_Page_Down,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_PAGES,
+ 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_Home,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_ENDS,
+ -1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_KP_Home,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_ENDS,
+ -1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_End,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_ENDS,
+ 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_MOD1_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_KP_End,
+ "move-viewport",
+ "(ii)",
+ GTK_SCROLL_ENDS,
+ 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_CONTROL_MASK,
+ GDK_KEY_percent,
+ "move-to-matching-bracket",
+ "(b)",
+ FALSE);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_CONTROL_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_a,
+ "change-number",
+ "(i)",
+ 1);
+
+ gtk_widget_class_add_binding_signal (widget_class,
+ GDK_CONTROL_MASK | GDK_SHIFT_MASK,
+ GDK_KEY_x,
+ "change-number",
+ "(i)",
+ -1);
}
static GObject *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]