[gnome-shell/wip/carlosg/osk-cldr: 9/28] st: Make st_button_fake_release() work with touch press



commit 3dd3c1ac34d9be02c780a008ce998848fb5f2898
Author: Carlos Garnacho <carlosg gnome org>
Date:   Fri Nov 10 18:29:53 2017 +0100

    st: Make st_button_fake_release() work with touch press
    
    The st_button_release() call wouldn't happen because StButton does not
    set priv->button_mask on touch events. And if we make it called, we can't
    try to unset the device grab at the end of the function, as device/sequence
    are unset earlier on.

 src/st/st-button.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)
---
diff --git a/src/st/st-button.c b/src/st/st-button.c
index 38fe20759..8f5c4922f 100644
--- a/src/st/st-button.c
+++ b/src/st/st-button.c
@@ -765,7 +765,13 @@ st_button_fake_release (StButton *button)
   g_return_if_fail (ST_IS_BUTTON (button));
 
   priv = st_button_get_instance_private (button);
-  if (priv->pressed)
+  if (priv->device && priv->press_sequence)
+    {
+      clutter_input_device_sequence_ungrab (priv->device,
+                                            priv->press_sequence);
+    }
+
+  if (priv->pressed || priv->press_sequence)
     st_button_release (button, priv->device,
                        priv->pressed, 0, NULL);
 
@@ -775,14 +781,6 @@ st_button_fake_release (StButton *button)
       clutter_ungrab_pointer ();
     }
 
-  if (priv->device &&
-      priv->press_sequence)
-    {
-      clutter_input_device_sequence_ungrab (priv->device,
-                                            priv->press_sequence);
-      priv->press_sequence = NULL;
-    }
-
   priv->device = NULL;
 }
 


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