discomfitor pushed a commit to branch efl-1.16.

http://git.enlightenment.org/core/efl.git/commit/?id=ecb00445baf5ce876ad87e763bf8b095c460b1a0

commit ecb00445baf5ce876ad87e763bf8b095c460b1a0
Author: Chris Michael <cp.mich...@samsung.com>
Date:   Tue Nov 17 15:55:41 2015 -0500

    ecore-evas-drm: Send fake mouse_move event after registering
    
    This fixes an issue where ecore_drm was sending an initial mouse_move
    event too early in the startup process. Instead, we will send the
    event from Ecore_Evas after it has been registered with Ecore_Input.
    This is done here to address and Fix T2854.
    
    @fix
    
    Signed-off-by: Chris Michael <cp.mich...@samsung.com>
---
 src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index a806cc0..9652144 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -322,6 +322,25 @@ ecore_evas_drm_new_internal(const char *device, unsigned 
int parent EINA_UNUSED,
                                
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
                                
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
 
+   /* NB: Send a fake mouse move event so that E-Wl gets an updated
+    * pointer position, else we end up with buggers (ref: T2854) */
+     {
+        Ecore_Event_Mouse_Move *ev;
+
+        ev = calloc(1, sizeof(Ecore_Event_Mouse_Move));
+        ev->window = ee->prop.window;
+        ev->event_window = ee->prop.window;
+        ev->root_window = ee->prop.window;
+        ev->same_screen = 1;
+
+        ecore_drm_device_pointer_xy_get(dev, &ev->x, &ev->y);
+
+        ev->root.x = ev->x;
+        ev->root.y = ev->y;
+
+        ecore_event_evas_mouse_move(NULL, ECORE_EVENT_MOUSE_MOVE, ev);
+     }
+
    return ee;
 
 eng_err:

-- 


Reply via email to