summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinwoo Kim <cinoo.kim@samsung.com>2013-09-02 11:51:08 +0900
committerShinwoo Kim <cinoo.kim@samsung.com>2013-09-02 11:52:50 +0900
commit6113a3b76779db10de627b129464f1cbcf614a50 (patch)
tree9f91bcedff1893d99cb69e2bb736bc3cbd574f75
parent64823141f67b6198f3a7f4dcab6378983430b340 (diff)
[ecore_input_evas] check the state of last mouse event more properly.
Diffstat (limited to '')
-rw-r--r--ChangeLog4
-rw-r--r--NEWS1
-rw-r--r--src/lib/ecore_input_evas/ecore_input_evas.c15
3 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 1e883c88ac..85dcb1808e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12013-09-02 Shinwoo Kim
2
3 * Ecore_Input_Evas: Check the state of last mouse event more properly.
4
12013-08-29 Boris Faure 52013-08-29 Boris Faure
2 6
3 * Edje: export EFL_VERSION_MAJOR/MINOR when compiling edc files 7 * Edje: export EFL_VERSION_MAJOR/MINOR when compiling edc files
diff --git a/NEWS b/NEWS
index 088067c802..df5af760a6 100644
--- a/NEWS
+++ b/NEWS
@@ -372,6 +372,7 @@ Fixes:
372 - Fix return type of function ecore_wl_outputs_get(). 372 - Fix return type of function ecore_wl_outputs_get().
373 * Ecore_Input_Evas: 373 * Ecore_Input_Evas:
374 - Fix ecore_input_evas didn't check the device id of mouse event. 374 - Fix ecore_input_evas didn't check the device id of mouse event.
375 - Check the state of last mouse event more properly.
375 * Ecore-imf: 376 * Ecore-imf:
376 - Fix crash when ecore_imf_context_del is called in ecore_imf_context_input_panel_callback_call. 377 - Fix crash when ecore_imf_context_del is called in ecore_imf_context_input_panel_callback_call.
377 * Eio: 378 * Eio:
diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c b/src/lib/ecore_input_evas/ecore_input_evas.c
index 8669226983..ef08c48c59 100644
--- a/src/lib/ecore_input_evas/ecore_input_evas.c
+++ b/src/lib/ecore_input_evas/ecore_input_evas.c
@@ -341,6 +341,7 @@ _ecore_event_evas_key(Ecore_Event_Key *e, Ecore_Event_Press press)
341static Eina_Bool 341static Eina_Bool
342_ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press press, Eina_Bool faked) 342_ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press press, Eina_Bool faked)
343{ 343{
344 Ecore_Event_Last *eel;
344 Ecore_Input_Window *lookup; 345 Ecore_Input_Window *lookup;
345 Evas_Button_Flags flags = EVAS_BUTTON_NONE; 346 Evas_Button_Flags flags = EVAS_BUTTON_NONE;
346 347
@@ -352,11 +353,15 @@ _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press pr
352 if (_last_events_enable) 353 if (_last_events_enable)
353 { 354 {
354 //error handle: if ecore up without ecore down 355 //error handle: if ecore up without ecore down
355 if ((press == ECORE_UP) && (!_ecore_event_evas_lookup(e->multi.device, e->buttons, EINA_FALSE))) 356 if (press == ECORE_UP)
356 { 357 {
357 INF("ButtonEvent: up event without down event."); 358 eel = _ecore_event_evas_lookup(e->multi.device, e->buttons, EINA_FALSE);
358 return ECORE_CALLBACK_PASS_ON; 359 if ((!eel) || (eel->state == ECORE_INPUT_UP))
359 } 360 {
361 INF("ButtonEvent: up event without down event.");
362 return ECORE_CALLBACK_PASS_ON;
363 }
364 }
360 } 365 }
361 366
362 if (!faked) _ecore_event_evas_push_mouse_button(e, press); 367 if (!faked) _ecore_event_evas_push_mouse_button(e, press);