[gtk+/wip/carlosg/private-event-structs: 1/41] modules: Update input context impls to using GdkEvent API
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/carlosg/private-event-structs: 1/41] modules: Update input context impls to using GdkEvent API
- Date: Fri, 25 Aug 2017 15:05:19 +0000 (UTC)
commit 89da428166ffc01b95d37535322647798bbe8170
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Aug 25 16:40:59 2017 +0200
modules: Update input context impls to using GdkEvent API
modules/input/gtkimcontextmultipress.c | 13 ++++++++-----
modules/input/gtkimcontextthai.c | 16 ++++++++++------
modules/input/gtkimcontextxim.c | 21 ++++++++++++++-------
3 files changed, 32 insertions(+), 18 deletions(-)
---
diff --git a/modules/input/gtkimcontextmultipress.c b/modules/input/gtkimcontextmultipress.c
index b92570b..f62e42b 100644
--- a/modules/input/gtkimcontextmultipress.c
+++ b/modules/input/gtkimcontextmultipress.c
@@ -224,15 +224,18 @@ vfunc_filter_keypress (GtkIMContext *context, GdkEventKey *event)
multipress_context = GTK_IM_CONTEXT_MULTIPRESS (context);
- if (event->type == GDK_KEY_PRESS)
+ if (gdk_event_get_event_type ((GdkEvent *) event) == GDK_KEY_PRESS)
{
KeySequence *possible;
+ guint keyval;
+
+ gdk_event_get_keyval ((GdkEvent *) event, &keyval);
/* Check whether the current key is the same as previously entered, because
* if it is not then we should accept the previous one, and start a new
* character. */
if (multipress_context->compose_count > 0
- && multipress_context->key_last_entered != event->keyval
+ && multipress_context->key_last_entered != keyval
&& multipress_context->tentative_match != NULL)
{
/* Accept the previously chosen character. This wipes
@@ -243,7 +246,7 @@ vfunc_filter_keypress (GtkIMContext *context, GdkEventKey *event)
/* Decide what character this key press would choose: */
possible = g_hash_table_lookup (multipress_context->key_sequences,
- GUINT_TO_POINTER (event->keyval));
+ GUINT_TO_POINTER (keyval));
if (possible != NULL)
{
if (multipress_context->compose_count == 0)
@@ -255,7 +258,7 @@ vfunc_filter_keypress (GtkIMContext *context, GdkEventKey *event)
multipress_context->compose_count = 0;
/* Store the last key pressed in the compose sequence. */
- multipress_context->key_last_entered = event->keyval;
+ multipress_context->key_last_entered = keyval;
/* Get the possible match for this number of presses of the key.
* compose_count starts at 1, so that 0 can mean not composing. */
@@ -291,7 +294,7 @@ vfunc_filter_keypress (GtkIMContext *context, GdkEventKey *event)
accept_character (multipress_context,
multipress_context->tentative_match);
}
- keyval_uchar = gdk_keyval_to_unicode (event->keyval);
+ keyval_uchar = gdk_keyval_to_unicode (keyval);
/* Convert to a string for accept_character(). */
if (keyval_uchar != 0)
diff --git a/modules/input/gtkimcontextthai.c b/modules/input/gtkimcontextthai.c
index 73510c0..8275333 100644
--- a/modules/input/gtkimcontextthai.c
+++ b/modules/input/gtkimcontextthai.c
@@ -281,20 +281,24 @@ gtk_im_context_thai_filter_keypress (GtkIMContext *context,
gunichar prev_char, new_char;
gboolean is_reject;
GtkIMContextThaiISCMode isc_mode;
+ GdkModifierType state;
+ guint keyval;
- if (event->type != GDK_KEY_PRESS)
+ if (gdk_event_get_event_type ((GdkEvent *) event) != GDK_KEY_PRESS ||
+ !gdk_event_get_state ((GdkEvent *) event, &state) ||
+ !gdk_event_get_keyval ((GdkEvent *) event, &keyval))
return FALSE;
- if (event->state & (GDK_MODIFIER_MASK
- & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD2_MASK)) ||
- is_context_lost_key (event->keyval))
+ if (state & (GDK_MODIFIER_MASK
+ & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD2_MASK)) ||
+ is_context_lost_key (keyval))
{
#ifndef GTK_IM_CONTEXT_THAI_NO_FALLBACK
forget_previous_chars (context_thai);
#endif /* !GTK_IM_CONTEXT_THAI_NO_FALLBACK */
return FALSE;
}
- if (event->keyval == 0 || is_context_intact_key (event->keyval))
+ if (keyval == 0 || is_context_intact_key (keyval))
{
return FALSE;
}
@@ -302,7 +306,7 @@ gtk_im_context_thai_filter_keypress (GtkIMContext *context,
prev_char = get_previous_char (context_thai, -1);
if (!prev_char)
prev_char = ' ';
- new_char = gdk_keyval_to_unicode (event->keyval);
+ new_char = gdk_keyval_to_unicode (keyval);
is_reject = TRUE;
isc_mode = gtk_im_context_thai_get_isc_mode (context_thai);
if (thai_is_accept (new_char, prev_char, isc_mode))
diff --git a/modules/input/gtkimcontextxim.c b/modules/input/gtkimcontextxim.c
index 4a8d3ca..c8f20f7 100644
--- a/modules/input/gtkimcontextxim.c
+++ b/modules/input/gtkimcontextxim.c
@@ -662,30 +662,37 @@ gtk_im_context_xim_filter_keypress (GtkIMContext *context,
gboolean result = FALSE;
GdkWindow *window;
XKeyPressedEvent xevent;
+ GdkEventType event_type;
+ guint state;
- if (event->type == GDK_KEY_RELEASE && !context_xim->filter_key_release)
+ event_type = gdk_event_get_event_type ((GdkEvent *) event);
+
+ if (!gdk_event_get_state ((GdkEvent *) event, &state))
+ return GDK_EVENT_PROPAGATE;
+
+ if (event_type == GDK_KEY_RELEASE && !context_xim->filter_key_release)
return FALSE;
- window = gdk_window_get_toplevel (event->window);
+ window = gdk_window_get_toplevel (gdk_event_get_window ((GdkEvent *) event));
- xevent.type = (event->type == GDK_KEY_PRESS) ? KeyPress : KeyRelease;
+ xevent.type = (event_type == GDK_KEY_PRESS) ? KeyPress : KeyRelease;
xevent.serial = 0; /* hope it doesn't matter */
xevent.send_event = event->send_event;
xevent.display = GDK_WINDOW_XDISPLAY (window);
xevent.window = GDK_WINDOW_XID (window);
xevent.root = DefaultRootWindow(GDK_WINDOW_XDISPLAY (window));
xevent.subwindow = xevent.window;
- xevent.time = event->time;
+ xevent.time = gdk_event_get_time ((GdkEvent *) event);
xevent.x = xevent.x_root = 0;
xevent.y = xevent.y_root = 0;
- xevent.state = event->state;
- xevent.keycode = event->hardware_keycode;
+ xevent.state = state;
+ xevent.keycode = gdk_event_get_scancode ((GdkEvent *) event);
xevent.same_screen = True;
if (XFilterEvent ((XEvent *)&xevent, context_xim->client_window_xid))
return TRUE;
- if (event->state &
+ if (state &
(gtk_accelerator_get_default_mod_mask () & ~(GDK_SHIFT_MASK | GDK_CONTROL_MASK)))
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]