diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 344279080..ac1ddcf72 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2442,6 +2442,7 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) ec->parent->lock_close = EINA_FALSE; ec->parent->modal = NULL; } + if (e_comp_wl->selection.target == ec) e_comp_wl->selection.target = NULL; if ((ec == e_client_focused_get()) && ec->visible) _e_comp_wl_keyboard_leave(ec); diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c index fb160f7ad..c6d8745cd 100644 --- a/src/bin/e_comp_wl_data.c +++ b/src/bin/e_comp_wl_data.c @@ -940,15 +940,6 @@ _e_comp_wl_clipboard_create(void) wl_signal_add(&e_comp_wl->selection.signal, &e_comp_wl->clipboard.listener); } -static void -_e_comp_wl_data_device_target_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - E_Client *ec = data; - - if (e_comp_wl->selection.target == ec) - e_comp_wl->selection.target = NULL; -} - E_API void e_comp_wl_data_device_send_enter(E_Client *ec) { @@ -976,8 +967,6 @@ e_comp_wl_data_device_send_enter(E_Client *ec) } } e_comp_wl->selection.target = ec; - evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_DEL, - _e_comp_wl_data_device_target_del, ec); #ifndef HAVE_WAYLAND_ONLY if (e_client_has_xwindow(ec)) @@ -1036,8 +1025,6 @@ e_comp_wl_data_device_send_leave(E_Client *ec) e_client_has_xwindow(e_comp_wl->drag_client)) return; if (e_comp_wl->drag && (e_comp_wl->drag->object == ec->frame)) return; - evas_object_event_callback_del_full(ec->frame, EVAS_CALLBACK_DEL, - _e_comp_wl_data_device_target_del, ec); if (e_comp_wl->selection.target == ec) e_comp_wl->selection.target = NULL; #ifndef HAVE_WAYLAND_ONLY