Package version up to 2.7.1
[platform/core/uifw/libtdm.git] / src / tdm_event_loop.c
index 2e7fbbd..5117c27 100644 (file)
@@ -63,6 +63,7 @@ static tdm_error
 _tdm_event_loop_main_fd_handler(int fd, tdm_event_loop_mask mask, void *user_data)
 {
        tdm_private_module *private_module = (tdm_private_module*)user_data;
+       tdm_private_display *private_display;
        tdm_func_display *func_display;
        tdm_error ret;
 
@@ -76,7 +77,10 @@ _tdm_event_loop_main_fd_handler(int fd, tdm_event_loop_mask mask, void *user_dat
        if (!func_display->display_handle_events)
                return TDM_ERROR_NONE;
 
+       private_display = private_module->private_display;
+       private_display->current_module = private_module;
        ret = func_display->display_handle_events(private_module->bdata);
+       private_display->current_module = NULL;
 
        return ret;
 }
@@ -162,6 +166,10 @@ tdm_event_loop_deinit(tdm_private_display *private_display)
                tdm_event_loop_source_remove(source);
        }
 
+#if WAYLAND_VERSION_MAJOR >= 1 && WAYLAND_VERSION_MINOR >= 15
+       wl_display_destroy_clients(private_display->private_loop->wl_display);
+#endif
+
        wl_display_destroy(private_display->private_loop->wl_display);
 
        free(private_display->private_loop);