Package version up to 2.7.1
[platform/core/uifw/libtdm.git] / src / tdm_event_loop.c
index e5e4ba2..5117c27 100644 (file)
@@ -9,7 +9,7 @@
  *          Taeheon Kim <th908.kim@samsung.com>,
  *          YoungJun Cho <yj44.cho@samsung.com>,
  *          SooChan Lim <sc1.lim@samsung.com>,
- *          Boram Park <sc1.lim@samsung.com>
+ *          Boram Park <boram1288.park@samsung.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the
@@ -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);