Quick fix for quick 2-finger hover gesture 12/276612/1 accepted/tizen/6.5/unified/20220711.173913 submit/tizen_6.5/20220711.052136
authorArtur Świgoń <a.swigon@samsung.com>
Tue, 21 Jun 2022 11:37:08 +0000 (13:37 +0200)
committerChun <jykeon@samsung.com>
Wed, 22 Jun 2022 02:14:28 +0000 (02:14 +0000)
This patch adds an extra emission of the 'ongoing' gesture signal before
'end' in case there wasn't one.

Change-Id: I877407bc4a120694411ce7d86f5445d19761066a
(cherry picked from commit 9792b9f611bc971fc856c1bac7e9a29430ab231f)

src/e_mod_main.c

index 8cb00f0..95d48bc 100644 (file)
@@ -213,6 +213,8 @@ const char *gesture_enum_to_string(Gesture g)
 
 int _e_mod_atspi_dbus_broadcast(Gesture_Info *gi)
 {
+   static int last_state = 0;
+
    /* Implement this for gesture broadcast */
    DEBUG("atspi bus broadcast callback");
    if (!conn) return -1;
@@ -235,12 +237,21 @@ int _e_mod_atspi_dbus_broadcast(Gesture_Info *gi)
     }
 //
 
+   // Ensure that there is at least one 'ongoing' signal before 'end' in two-finger hover
+   if (gi->state == 2 && last_state != 1 && gi->type == TWO_FINGERS_HOVER)
+    {
+       eldbus_service_signal_emit(g_context->iface, GESTURE_DETECTED_SIGNAL, (int)gi->type, gi->x_beg, gi->y_beg,
+                                  gi->x_end, gi->y_end, 1, gi->event_time - 5);
+    }
+
    eldbus_service_signal_emit(g_context->iface, GESTURE_DETECTED_SIGNAL, (int)gi->type, gi->x_beg, gi->y_beg,
                               gi->x_end, gi->y_end, gi->state, gi->event_time);
 
    INFO("GestureDetected %s %d (%d %d %d %d %d %u)", gesture_enum_to_string(gi->type),
         (int)gi->type, gi->x_beg, gi->y_beg, gi->x_end, gi->y_end, gi->state, gi->event_time);
 
+   last_state = gi->state;
+
    return 0;
 }