ecore-evas-fb: This patch fixes a bug in ecore_evas_fb.c introduced by the big eina
authormickeyl <mickeyl@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 19 Apr 2009 15:47:32 +0000 (15:47 +0000)
committermickeyl <mickeyl@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 19 Apr 2009 15:47:32 +0000 (15:47 +0000)
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 <lars@segv.dk>
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@40224 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ecore_evas/ecore_evas_fb.c

index ead6c64..8a712c9 100644 (file)
@@ -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);