[prev in list] [next in list] [prev in thread] [next in thread] 

List:       enlightenment-devel
Subject:    Re: [E-devel] [ecore_input_evas.c] proper error handling
From:       Kim Shinwoo <kimcinoo.efl () gmail ! com>
Date:       2013-08-29 12:39:45
Message-ID: CAP-c0nFaVTHCcQ_BU+XpirnTEhRfeaQnHsP5oOnMUN_Up17Bew () mail ! gmail ! com
[Download RAW message or body]

to meet previous condition
the following would be better than before.
please let me know your opinion. thank you.

diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c
b/src/lib/ecore_input_evas/ecore_input_evas.c
index 8669226..dc5019e 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) && (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);


cordially
shinwoo kim.


On Thu, Aug 29, 2013 at 9:35 PM, Kim Shinwoo <kimcinoo.efl@gmail.com> wrote:

> deal all, hello.
>
> the following would be proper error handling.
> previous lines just check whether the Ecore_Event_Last exists or not.
> if there is Ecore_Event_Last, then error handling lines should check the
> state.
> please check the following lines and give your opinion. thank you.
>
> diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c
> b/src/lib/ecore_input_evas/ecore_input_evas.c
> index 8669226..124e5dd 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);
>
>
> cordially,
> shinwoo kim.
>
>
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic