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 <[email protected]>
---
 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to