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]