[mutter/gnome-3-24] clutter: Do not throttle motion events on tablet tools



commit 2df1bd3dda73e7f27a6297a747c02888743f78d9
Author: Carlos Garnacho <carlosg gnome org>
Date:   Thu Jun 29 23:42:43 2017 +0200

    clutter: Do not throttle motion events on tablet tools
    
    Events from tablets must not be filtered out, as the event coalescing
    results in precision loss.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=783535

 clutter/clutter/clutter-stage.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
index 21968b9..e93f79d 100644
--- a/clutter/clutter/clutter-stage.c
+++ b/clutter/clutter/clutter-stage.c
@@ -971,6 +971,7 @@ _clutter_stage_process_queued_events (ClutterStage *stage)
       ClutterEvent *next_event;
       ClutterInputDevice *device;
       ClutterInputDevice *next_device;
+      ClutterInputDeviceType device_type;
       gboolean check_device = FALSE;
 
       event = l->data;
@@ -986,8 +987,16 @@ _clutter_stage_process_queued_events (ClutterStage *stage)
       if (device != NULL && next_device != NULL)
         check_device = TRUE;
 
-      /* Skip consecutive motion events coming from the same device */
-      if (priv->throttle_motion_events && next_event != NULL)
+      device_type = clutter_input_device_get_device_type (device);
+
+      /* Skip consecutive motion events coming from the same device,
+       * except those of tablet tools, since users of these events
+       * want no precision loss.
+       */
+      if (priv->throttle_motion_events && next_event != NULL &&
+          device_type != CLUTTER_TABLET_DEVICE &&
+          device_type != CLUTTER_PEN_DEVICE &&
+          device_type != CLUTTER_ERASER_DEVICE)
         {
           if (event->type == CLUTTER_MOTION &&
               (next_event->type == CLUTTER_MOTION ||


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]