diff --git a/src/bin/e_win.c b/src/bin/e_win.c index 464504bc3..e71451c66 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -263,7 +263,8 @@ _e_win_hide(void *obj) if (cb) cb(win); if (!e_object_unref(E_OBJECT(win))) return; - E_FREE_FUNC(win->pointer, e_object_del); + if ((win->pointer) && (win->comp->comp_type != E_PIXMAP_TYPE_WL)) + E_FREE_FUNC(win->pointer, e_object_del); e_canvas_del(win->ecore_evas); ecore_evas_callback_move_set(win->ecore_evas, NULL); ecore_evas_callback_resize_set(win->ecore_evas, NULL); @@ -348,7 +349,7 @@ e_win_new(E_Comp *c) if (c->comp_type == E_PIXMAP_TYPE_X) win->pointer = e_pointer_window_new(win->evas_win, EINA_TRUE); else if (c->comp_type == E_PIXMAP_TYPE_WL) - win->pointer = e_pointer_canvas_new(win->ecore_evas, EINA_TRUE); + win->pointer = c->pointer; return win; } @@ -716,7 +717,7 @@ e_win_client_icon_key_set(E_Win *win, const char *key) static void _e_win_free(E_Win *win) { - if (win->pointer) + if ((win->pointer) && (win->comp->comp_type != E_PIXMAP_TYPE_WL)) e_object_del(E_OBJECT(win->pointer)); if (win->ecore_evas)