e_input_evdev: append axis update event in touch event pending list 81/319181/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Tue, 28 Jan 2025 14:55:54 +0000 (23:55 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 5 Feb 2025 05:29:01 +0000 (14:29 +0900)
Change-Id: I9561ab9e00eb33cfd930ddf797113f2c3ecdbd2b
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/bin/inputmgr/e_input_evdev.c

index 9aefe78e44fb147917efb4b365edf7783e9be07b..4f4b6d1f80f53017e46e6aef523b8e5ed1ca4ec0 100644 (file)
@@ -41,6 +41,7 @@ static void  _device_output_assign(E_Input_Evdev *evdev, E_Input_Seat_Capabiliti
 
 static void  _pointer_touch_ecore_event_add(void *data);
 static void  _input_event_add(E_Input_Evdev *evdev, int event_type, Eina_Bool touch_event, void *ev, ev_free_func free_func, void *free_func_data);
+static void  _e_input_aux_data_event_free(void *user_data, void *ev);
 
 static Eina_Bool _touch_blocked_by_palm, _touch_up_blocked_by_palm;
 
@@ -1833,6 +1834,8 @@ _touch_event_pending_flush(E_Input_Evdev *edev)
           _input_event_add(edev, ev->type, EINA_TRUE, ev->event, _e_input_event_mouse_button_cb_free, NULL);
         else if (ev->type == ECORE_EVENT_MOUSE_MOVE)
           _input_event_add(edev, ev->type, EINA_TRUE, ev->event, _e_input_event_mouse_move_cb_free, NULL);
+        else if (ev->type == ECORE_EVENT_AXIS_UPDATE)
+          _input_event_add(edev, ev->type, EINA_TRUE, ev->event, _e_input_aux_data_event_free, NULL);
         else
           {
              ELOGF("CRI", "NOT Supported pending event. type:%d", NULL, ev->type);
@@ -2448,7 +2451,11 @@ e_input_evdev_handle_touch_aux_data(E_Input_Evdev *evdev, struct libinput_event_
           }
      }
 
-   _input_event_add(evdev, ECORE_EVENT_AXIS_UPDATE, EINA_TRUE, ev, _e_input_aux_data_event_free, NULL);
+   if (!_touch_event_pending_add(evdev, ECORE_EVENT_AXIS_UPDATE, ev))
+     {
+        ELOGF("Touch", "Failed to pend event (AXIS UPDATE). Call ecore_event_add immediately.", NULL);
+        _input_event_add(evdev, ECORE_EVENT_AXIS_UPDATE, EINA_TRUE, ev, _e_input_aux_data_event_free, NULL);
+     }
 }
 
 E_Input_Evdev *