[ecore_input_evas] check the state of last mouse event more properly.

This commit is contained in:
Shinwoo Kim 2013-09-02 11:51:08 +09:00
parent 64823141f6
commit 6113a3b767
3 changed files with 15 additions and 5 deletions

View File

@ -1,3 +1,7 @@
2013-09-02 Shinwoo Kim
* Ecore_Input_Evas: Check the state of last mouse event more properly.
2013-08-29 Boris Faure
* Edje: export EFL_VERSION_MAJOR/MINOR when compiling edc files

1
NEWS
View File

@ -372,6 +372,7 @@ Fixes:
- Fix return type of function ecore_wl_outputs_get().
* Ecore_Input_Evas:
- Fix ecore_input_evas didn't check the device id of mouse event.
- Check the state of last mouse event more properly.
* Ecore-imf:
- Fix crash when ecore_imf_context_del is called in ecore_imf_context_input_panel_callback_call.
* Eio:

View File

@ -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);