aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/wl_drm/e_mod_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/wl_drm/e_mod_main.c')
-rw-r--r--src/modules/wl_drm/e_mod_main.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c
index 952b05c5b..7bba2540e 100644
--- a/src/modules/wl_drm/e_mod_main.c
+++ b/src/modules/wl_drm/e_mod_main.c
@@ -865,14 +865,13 @@ _drm_device_del(void *data EINA_UNUSED, const Efl_Event *event)
ecore_evas_cursor_device_unset(e_comp->ee, event->info);
}
-EFL_CALLBACKS_ARRAY_DEFINE(_drm_device_del_cb,
- { EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED, _drm_device_del });
-
E_API void *
e_modapi_init(E_Module *m)
{
int w = 0, h = 0;
+ static Efl_Callback_Array_Item arr[2] = { { 0, _drm_device_del } };
+
printf("LOAD WL_DRM MODULE\n");
/* try to init ecore_drm */
@@ -918,6 +917,14 @@ e_modapi_init(E_Module *m)
ecore_evas_screen_geometry_get(e_comp->ee, NULL, NULL, &w, &h);
if (!e_comp_canvas_init(w, h)) return NULL;
+#ifdef EFL_VERSION_1_21
+ arr[0].desc = EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED;
+#else
+ if (E_EFL_VERSION_MINIMUM(1, 20, 99))
+ arr[0].desc = dlsym(NULL, "_EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED");
+ if (!arr[0].desc)
+ arr[0].desc = dlsym(NULL, "_EFL_CANVAS_EVENT_DEVICE_REMOVED");
+#endif
ecore_evas_pointer_xy_get(e_comp->ee, &e_comp_wl->ptr.x,
&e_comp_wl->ptr.y);
evas_event_feed_mouse_in(e_comp->evas, 0, NULL);
@@ -941,7 +948,7 @@ e_modapi_init(E_Module *m)
ecore_event_handler_add(ELPUT_EVENT_POINTER_MOTION,
(Ecore_Event_Handler_Cb)_pointer_motion, NULL);
- efl_event_callback_array_priority_add(e_comp->evas, _drm_device_del_cb(),
+ efl_event_callback_array_priority_add(e_comp->evas, arr,
EFL_CALLBACK_PRIORITY_BEFORE, NULL);
return m;