]>
Commit | Line | Data |
---|---|---|
a78fa6c4 AG |
1 | From 24e682d0fcc98d7c3f63fa484cc28285df48b499 Mon Sep 17 00:00:00 2001 |
2 | From: Peter Hutterer <peter.hutterer@who-t.net> | |
3 | Date: Wed, 25 Mar 2009 13:08:27 +1000 | |
4 | Subject: [PATCH] dix: ignore non-pointer events in XineramaCheckMotion (#20557) | |
5 | ||
6 | Note that deviceKeyButtonPointer and keyButtonPointer have the same wire | |
7 | layout, so we only need to check for event types. | |
8 | ||
9 | X.Org Bug 20557 <http://bugs.freedesktop.org/show_bug.cgi?id=20557> | |
10 | ||
11 | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | |
12 | --- | |
13 | dix/events.c | 17 +++++++++++++++++ | |
14 | 1 files changed, 17 insertions(+), 0 deletions(-) | |
15 | ||
16 | diff --git a/dix/events.c b/dix/events.c | |
17 | index 6743cae..63b0674 100644 | |
18 | --- a/dix/events.c | |
19 | +++ b/dix/events.c | |
20 | @@ -625,6 +625,23 @@ XineramaCheckMotion(xEvent *xE, DeviceIntPtr pDev) | |
21 | ||
22 | if (xE && !syncEvents.playingEvents) | |
23 | { | |
24 | + /* GetPointerEvents() guarantees that pointer events have the correct | |
25 | + rootX/Y set already. */ | |
26 | + switch(xE->u.u.type) | |
27 | + { | |
28 | + case ButtonPress: | |
29 | + case ButtonRelease: | |
30 | + case MotionNotify: | |
31 | + break; | |
32 | + default: | |
33 | + if (xE->u.u.type == DeviceButtonPress || | |
34 | + xE->u.u.type == DeviceButtonRelease || | |
35 | + xE->u.u.type == DeviceMotionNotify) | |
36 | + break; | |
37 | + /* all other events return FALSE */ | |
38 | + return FALSE; | |
39 | + } | |
40 | + | |
41 | /* Motion events entering DIX get translated to Screen 0 | |
42 | coordinates. Replayed events have already been | |
43 | translated since they've entered DIX before */ | |
44 | -- | |
45 | 1.6.0.6 | |
46 |