Hi

Should someone please apply this patch before the monday snapshot?

Thanks
Lars Munch

On Fri, Mar 27, 2009 at 04:28:16PM +0100, Lars Munch wrote:
> 
> This patch fixes a bug in ecore_evas_fb.c introduced by the big eina
> list conversion. The bug resulted in no input devices where added when
> using framebuffer. This patch also cleans up some related NULL
> checks that are not needed any more.
> 
> Signed-off-by: Lars Munch <l...@segv.dk>
> ---
>  src/lib/ecore_evas/ecore_evas_fb.c |   75 +++++++++++++++--------------------
>  1 files changed, 32 insertions(+), 43 deletions(-)
> 
> diff --git a/src/lib/ecore_evas/ecore_evas_fb.c 
> b/src/lib/ecore_evas/ecore_evas_fb.c
> index 074f2ed..39c4af4 100644
> --- a/src/lib/ecore_evas/ecore_evas_fb.c
> +++ b/src/lib/ecore_evas/ecore_evas_fb.c
> @@ -87,11 +87,9 @@ _ecore_evas_fb_lose(void *data __UNUSED__)
>       ee = (Ecore_Evas *)l;
>       ee->visible = 0;
>       }
> -   if (ecore_evas_input_devices)
> -     {
> -     EINA_LIST_FOREACH(ecore_evas_input_devices, ll, dev)
> -       ecore_fb_input_device_listen(dev, 0);
> -     }
> +
> +   EINA_LIST_FOREACH(ecore_evas_input_devices, ll, dev)
> +     ecore_fb_input_device_listen(dev, 0);
>  }
>  
>  static void
> @@ -112,11 +110,9 @@ _ecore_evas_fb_gain(void *data __UNUSED__)
>       else
>         evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
>       }
> -   if (ecore_evas_input_devices)
> -     {
> -     EINA_LIST_FOREACH(ecore_evas_input_devices, ll, dev)
> -       ecore_fb_input_device_listen(dev, 1);
> -     }
> +
> +   EINA_LIST_FOREACH(ecore_evas_input_devices, ll, dev)
> +     ecore_fb_input_device_listen(dev, 1);
>  }
>  
>  static int
> @@ -289,38 +285,35 @@ _ecore_evas_fb_init(int w, int h)
>  
>       caps = ecore_fb_input_device_cap_get(device);
>  
> -     if (ecore_evas_input_devices)
> -       {
> -          /* Mouse */
> +     /* Mouse */
>  #ifdef HAVE_TSLIB
> -          if (caps & ECORE_FB_INPUT_DEVICE_CAP_RELATIVE)
> +     if (caps & ECORE_FB_INPUT_DEVICE_CAP_RELATIVE)
>  #else
> -          if ((caps & ECORE_FB_INPUT_DEVICE_CAP_RELATIVE) || (caps & 
> ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE))
> +     if ((caps & ECORE_FB_INPUT_DEVICE_CAP_RELATIVE) || (caps & 
> ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE))
>  #endif
> +       {
> +          ecore_fb_input_device_axis_size_set(device, w, h);
> +          ecore_fb_input_device_listen(device,1);
> +          ecore_evas_input_devices = 
> eina_list_append(ecore_evas_input_devices, device);
> +          if (!mouse_handled)
>              {
> -               ecore_fb_input_device_axis_size_set(device, w, h);
> -               ecore_fb_input_device_listen(device,1);
> -               ecore_evas_input_devices = 
> eina_list_append(ecore_evas_input_devices, device);
> -               if (!mouse_handled)
> -                 {
> -                    ecore_evas_event_handlers[2]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_BUTTON_DOWN, 
> _ecore_evas_event_mouse_button_down, NULL);
> -                    ecore_evas_event_handlers[3]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_BUTTON_UP, 
> _ecore_evas_event_mouse_button_up, NULL);
> -                    ecore_evas_event_handlers[4]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_MOVE, 
> _ecore_evas_event_mouse_move, NULL);
> -                    ecore_evas_event_handlers[5]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_WHEEL, 
> _ecore_evas_event_mouse_wheel, NULL);
> -                    mouse_handled = 1;
> -                 }
> +               ecore_evas_event_handlers[2]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_BUTTON_DOWN, 
> _ecore_evas_event_mouse_button_down, NULL);
> +               ecore_evas_event_handlers[3]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_BUTTON_UP, 
> _ecore_evas_event_mouse_button_up, NULL);
> +               ecore_evas_event_handlers[4]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_MOVE, 
> _ecore_evas_event_mouse_move, NULL);
> +               ecore_evas_event_handlers[5]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_MOUSE_WHEEL, 
> _ecore_evas_event_mouse_wheel, NULL);
> +               mouse_handled = 1;
>              }
> -          /* Keyboard */
> -          else if ((caps & ECORE_FB_INPUT_DEVICE_CAP_KEYS_OR_BUTTONS) && 
> !(caps & ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE))
> +       }
> +     /* Keyboard */
> +     else if ((caps & ECORE_FB_INPUT_DEVICE_CAP_KEYS_OR_BUTTONS) && !(caps & 
> ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE))
> +       {
> +          ecore_fb_input_device_listen(device,1);
> +          ecore_evas_input_devices = 
> eina_list_append(ecore_evas_input_devices, device);
> +          if (!keyboard_handled)
>              {
> -               ecore_fb_input_device_listen(device,1);
> -               ecore_evas_input_devices = 
> eina_list_append(ecore_evas_input_devices, device);
> -               if (!keyboard_handled)
> -                 {
> -                    ecore_evas_event_handlers[0]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_KEY_DOWN, _ecore_evas_event_key_down, 
> NULL);
> -                    ecore_evas_event_handlers[1]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_KEY_UP, _ecore_evas_event_key_up, 
> NULL);
> -                    keyboard_handled = 1;
> -                 }
> +               ecore_evas_event_handlers[0]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_KEY_DOWN, _ecore_evas_event_key_down, 
> NULL);
> +               ecore_evas_event_handlers[1]  = 
> ecore_event_handler_add(ECORE_FB_EVENT_KEY_UP, _ecore_evas_event_key_up, 
> NULL);
> +               keyboard_handled = 1;
>              }
>         }
>       }
> @@ -486,6 +479,7 @@ static void
>  _ecore_evas_fullscreen_set(Ecore_Evas *ee, int on)
>  {
>     Eina_List *l;
> +   Ecore_Fb_Input_Device *dev;
>     int resized = 0;
>  
>     if (((ee->prop.fullscreen) && (on)) ||
> @@ -521,14 +515,9 @@ _ecore_evas_fullscreen_set(Ecore_Evas *ee, int on)
>       evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
>       }
>     ee->prop.fullscreen = on;
> +   EINA_LIST_FOREACH(ecore_evas_input_devices, l, dev)
> +     ecore_fb_input_device_axis_size_set(dev, ee->w, ee->h);
>     /* rescale the input device area */
> -   if (ecore_evas_input_devices)
> -     {
> -     Ecore_Fb_Input_Device *dev;
> -
> -     EINA_LIST_FOREACH(ecore_evas_input_devices, l, dev)
> -        ecore_fb_input_device_axis_size_set(dev, ee->w, ee->h);
> -     }
>     if (resized)
>       {
>       if (ee->func.fn_resize) ee->func.fn_resize(ee);
> -- 
> 1.6.2.1
> 
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 

------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to