summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2015-11-17 15:55:41 -0500
committerChris Michael <cp.michael@samsung.com>2015-11-17 15:55:41 -0500
commit85b04c188a7375ae77d3806d4c13468d480d2449 (patch)
tree15c287eb30f60146c2fa96d551a0fbb5b772e90e
parent0210051a40beb2d53789ced8b6c97671ea99ef2b (diff)
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.michael@samsung.com>
-rw-r--r--src/modules/ecore_evas/engines/drm/ecore_evas_drm.c19
1 files changed, 19 insertions, 0 deletions
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 a806cc0b36..9652144256 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,
322 (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process, 322 (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
323 (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process); 323 (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
324 324
325 /* NB: Send a fake mouse move event so that E-Wl gets an updated
326 * pointer position, else we end up with buggers (ref: T2854) */
327 {
328 Ecore_Event_Mouse_Move *ev;
329
330 ev = calloc(1, sizeof(Ecore_Event_Mouse_Move));
331 ev->window = ee->prop.window;
332 ev->event_window = ee->prop.window;
333 ev->root_window = ee->prop.window;
334 ev->same_screen = 1;
335
336 ecore_drm_device_pointer_xy_get(dev, &ev->x, &ev->y);
337
338 ev->root.x = ev->x;
339 ev->root.y = ev->y;
340
341 ecore_event_evas_mouse_move(NULL, ECORE_EVENT_MOUSE_MOVE, ev);
342 }
343
325 return ee; 344 return ee;
326 345
327eng_err: 346eng_err: