aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/ecore_input_evas
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 /src/lib/ecore_input_evas
parenteina: fix typo and use the right refcount. (diff)
downloadefl-6113a3b76779db10de627b129464f1cbcf614a50.tar.gz
[ecore_input_evas] check the state of last mouse event more properly.
Diffstat (limited to 'src/lib/ecore_input_evas')
-rw-r--r--src/lib/ecore_input_evas/ecore_input_evas.c15
1 files changed, 10 insertions, 5 deletions
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)
static Eina_Bool
_ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press press, Eina_Bool faked)
{
+ Ecore_Event_Last *eel;
Ecore_Input_Window *lookup;
Evas_Button_Flags flags = EVAS_BUTTON_NONE;
@@ -352,11 +353,15 @@ _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press pr
if (_last_events_enable)
{
//error handle: if ecore up without ecore down
- if ((press == ECORE_UP) && (!_ecore_event_evas_lookup(e->multi.device, e->buttons, EINA_FALSE)))
- {
- INF("ButtonEvent: up event without down event.");
- return ECORE_CALLBACK_PASS_ON;
- }
+ if (press == ECORE_UP)
+ {
+ eel = _ecore_event_evas_lookup(e->multi.device, e->buttons, EINA_FALSE);
+ if ((!eel) || (eel->state == ECORE_INPUT_UP))
+ {
+ INF("ButtonEvent: up event without down event.");
+ return ECORE_CALLBACK_PASS_ON;
+ }
+ }
}
if (!faked) _ecore_event_evas_push_mouse_button(e, press);