[gnome-builder] vim: use libide event synthesis helper
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] vim: use libide event synthesis helper
- Date: Thu, 15 Oct 2015 20:03:44 +0000 (UTC)
commit 9a6fccc22aa46f5f79f57aa60cfe7d08e736278b
Author: Christian Hergert <chergert redhat com>
Date: Thu Oct 15 13:03:21 2015 -0700
vim: use libide event synthesis helper
tests/test-vim.c | 78 ++++-------------------------------------------------
1 files changed, 6 insertions(+), 72 deletions(-)
---
diff --git a/tests/test-vim.c b/tests/test-vim.c
index cf1d3bb..3cf2476 100644
--- a/tests/test-vim.c
+++ b/tests/test-vim.c
@@ -22,6 +22,7 @@
#include "gb-plugins.h"
#include "gb-resources.h"
#include "test-helper.h"
+#include "util/ide-gdk.h"
typedef void (*VimTestFunc) (IdeContext *context,
GtkWidget *widget);
@@ -117,77 +118,6 @@ run_test (const gchar *path,
gtk_main ();
}
-static GdkEventKey *
-synthesize_event (GtkTextView *text_view,
- gunichar ch)
-{
- GdkDisplay *display;
- GdkDeviceManager *device_manager;
- GdkDevice *client_pointer;
- GdkWindow *window;
- GdkEvent *ev;
- GdkKeymapKey *keys = NULL;
- gint n_keys = 0;
- gchar str[8] = { 0 };
-
- window = gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT);
- g_assert (window != NULL);
- g_assert (GDK_IS_WINDOW (window));
-
- g_unichar_to_utf8 (ch, str);
-
- ev = gdk_event_new (GDK_KEY_PRESS);
- ev->key.window = g_object_ref (window);
- ev->key.send_event = TRUE;
- ev->key.time = gtk_get_current_event_time ();
- ev->key.state = 0;
- ev->key.hardware_keycode = 0;
- ev->key.group = 0;
- ev->key.is_modifier = 0;
-
- switch (ch)
- {
- case '\n':
- ev->key.keyval = GDK_KEY_Return;
- ev->key.string = g_strdup ("\n");
- ev->key.length = 1;
- break;
-
- case '\e':
- ev->key.keyval = GDK_KEY_Escape;
- ev->key.string = g_strdup ("");
- ev->key.length = 0;
- break;
-
- default:
- ev->key.keyval = gdk_unicode_to_keyval (ch);
- ev->key.length = strlen (str);
- ev->key.string = g_strdup (str);
- break;
- }
-
- gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
- ev->key.keyval,
- &keys,
- &n_keys);
-
- if (n_keys > 0)
- {
- ev->key.hardware_keycode = keys [0].keycode;
- ev->key.group = keys [0].group;
- if (keys [0].level == 1)
- ev->key.state |= GDK_SHIFT_MASK;
- g_free (keys);
- }
-
- display = gdk_window_get_display (ev->any.window);
- device_manager = gdk_display_get_device_manager (display);
- client_pointer = gdk_device_manager_get_client_pointer (device_manager);
- gdk_event_set_device (ev, gdk_device_get_associated_device (client_pointer));
-
- return &ev->key;
-}
-
/*
* Converts the input_chars into GdkEventKeys and synthesizes them to
* the widget. Then ensures that we get the proper string back out.
@@ -202,12 +132,16 @@ assert_keypress_equal (GtkWidget *widget,
GtkTextBuffer *buffer;
GtkTextIter begin;
GtkTextIter end;
+ GdkWindow *window;
g_assert (GTK_IS_TEXT_VIEW (widget));
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
g_assert (GTK_IS_TEXT_BUFFER (buffer));
+ window = gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT);
+ g_assert (GDK_IS_WINDOW (window));
+
for (; *input_chars; input_chars = g_utf8_next_char (input_chars))
{
gunichar ch = g_utf8_get_char (input_chars);
@@ -216,7 +150,7 @@ assert_keypress_equal (GtkWidget *widget,
while (gtk_events_pending ())
gtk_main_iteration ();
- event = synthesize_event (text_view, ch);
+ event = ide_gdk_synthesize_event_key (window, ch);
gtk_main_do_event ((GdkEvent *)event);
gdk_event_free ((GdkEvent *)event);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]