diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2011-08-02 19:19:00 +0200 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2012-11-03 19:59:13 -0400 |
commit | 6a03efe4355a2338f76e77bf9c0f51ffcbf8331b (patch) | |
tree | 9eb958e9d3b87a35d1fc2ccfbc3e6a2ac4cbf9ce | |
parent | 85c1058c94057b97e40409aed61ded1ec7fc6391 (diff) | |
download | mutter-6a03efe4355a2338f76e77bf9c0f51ffcbf8331b.tar.gz |
input-events: Add meta_input_event_ignored()
This function tells whether an input event should be ignored,
the only current reason being the duplication of touch events
and their emulated XI2 pointer event counterparts.
-rw-r--r-- | src/core/input-events.c | 28 | ||||
-rw-r--r-- | src/core/input-events.h | 3 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/core/input-events.c b/src/core/input-events.c index 7ac7a7616..5ef5d9c3c 100644 --- a/src/core/input-events.c +++ b/src/core/input-events.c @@ -146,6 +146,34 @@ meta_input_event_is_type (MetaDisplay *display, return (type == ev_type); } +gboolean +meta_input_event_ignore (MetaDisplay *display, + XEvent *ev) +{ + if (ev->type == GenericEvent && + ev->xcookie.extension == display->xinput2_opcode) + { + XIEvent *xev; + + g_assert (display->have_xinput2 == TRUE); + xev = (XIEvent *) ev->xcookie.data; + + switch (xev->evtype) + { + case XI_Motion: + case XI_ButtonPress: + case XI_ButtonRelease: + if (((XIDeviceEvent *) xev)->flags & XIPointerEmulated) + return TRUE; + + default: + return FALSE; + } + } + + return FALSE; +} + Window meta_input_event_get_window (MetaDisplay *display, XEvent *ev) diff --git a/src/core/input-events.h b/src/core/input-events.h index 356cd16f6..d0e5af0b3 100644 --- a/src/core/input-events.h +++ b/src/core/input-events.h @@ -42,6 +42,9 @@ gboolean meta_input_event_is_type (MetaDisplay *display, XEvent *ev, guint ev_type); +gboolean meta_input_event_ignore (MetaDisplay *display, + XEvent *ev); + Window meta_input_event_get_window (MetaDisplay *display, XEvent *ev); Window meta_input_event_get_root_window (MetaDisplay *display, |