[gtk+/wip/frame-synchronization] Don't compress motion events for different devices
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/frame-synchronization] Don't compress motion events for different devices
- Date: Thu, 14 Feb 2013 22:19:08 +0000 (UTC)
commit 11b8600a15fef3c9ee4f3821ebbccbe59c152ba2
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Thu Feb 14 14:51:33 2013 -0500
Don't compress motion events for different devices
A switch of device may be significant for an application, so don't
compress motion events if they are for different devices. This simple
handling isn't sufficient if we have competing event streams from
two different pointer events, but we don't expect this case to be
common.
gdk/gdkevents.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index 8e05a8e..4a9d0b9 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -268,6 +268,7 @@ _gdk_event_queue_handle_motion_compression (GdkDisplay *display)
GList *tmp_list;
GList *pending_motions = NULL;
GdkWindow *pending_motion_window = NULL;
+ GdkDevice *pending_motion_device = NULL;
/* If the last N events in the event queue are motion notify
* events for the same window, drop all but the last */
@@ -288,7 +289,12 @@ _gdk_event_queue_handle_motion_compression (GdkDisplay *display)
pending_motion_window != event->event.motion.window)
break;
+ if (pending_motion_device != NULL &&
+ pending_motion_device != event->event.motion.device)
+ break;
+
pending_motion_window = event->event.motion.window;
+ pending_motion_device = event->event.motion.device;
pending_motions = tmp_list;
tmp_list = tmp_list->prev;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]