From 366f61f42db2ca6db94fb4842f006f770bb32d38 Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Fri, 8 Dec 2017 17:24:15 +0900 Subject: [PATCH] Update e_screensaver before consuming touch event There was an issue that the screen saver works during user interaction. It is becuase that screen reader module uses ecore event filter, and consumes touch event. So the e_screensaver did not get the touch event. This patch set is using e_screensaver_notidle function to inform e_screensaver about touch event before screen reader consumes touch event. Change-Id: If47a61b765030641a526adc84030387905d3db6c --- src/e_screen_reader_gestures.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/e_screen_reader_gestures.c b/src/e_screen_reader_gestures.c index f37739d..063173e 100644 --- a/src/e_screen_reader_gestures.c +++ b/src/e_screen_reader_gestures.c @@ -1440,26 +1440,30 @@ _mouse_button_down(int type, Ecore_Event_Mouse_Button *event) static Eina_Bool _event_filter(void *data, void *loop_data, int type, void *event) { + Eina_Bool ret = EINA_TRUE; if (!is_screen_reader_support) { DEBUG("screen reader is not supported"); - return EINA_TRUE; + return ret; } if (type == ECORE_EVENT_MOUSE_BUTTON_DOWN) { - return _mouse_button_down(type, event); + ret = _mouse_button_down(type, event); } else if (type == ECORE_EVENT_MOUSE_BUTTON_UP) { - return _mouse_button_up(type, event); + ret = _mouse_button_up(type, event); } else if (type == ECORE_EVENT_MOUSE_MOVE) { - return _mouse_move(type, event); + ret = _mouse_move(type, event); } - return EINA_TRUE; + /* Update e_screensaver before consumeing touch event */ + if (!ret) e_screensaver_notidle(); + + return ret; } static void -- 2.7.4