forked from enlightenment/enlightenment
Add checks for client being a wl pixmap in some functions
If we don't do this, then when we run in X11 with wl client support, we crash in various places (iconify, etc) when trying to work with normal X clients. Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
4bc11ee5d5
commit
559d53bc5d
|
@ -1052,6 +1052,8 @@ _e_comp_wl_client_idler(void *data EINA_UNUSED)
|
||||||
{
|
{
|
||||||
if ((e_object_is_del(E_OBJECT(ec))) || (!ec->comp_data)) continue;
|
if ((e_object_is_del(E_OBJECT(ec))) || (!ec->comp_data)) continue;
|
||||||
|
|
||||||
|
// E_COMP_WL_PIXMAP_CHECK continue;
|
||||||
|
|
||||||
if (ec->post_resize)
|
if (ec->post_resize)
|
||||||
{
|
{
|
||||||
if ((ec->comp_data) && (ec->comp_data->shell.configure_send))
|
if ((ec->comp_data) && (ec->comp_data->shell.configure_send))
|
||||||
|
@ -1111,6 +1113,8 @@ _e_comp_wl_evas_cb_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(ec->comp_data->sub.list, l, subc)
|
EINA_LIST_FOREACH(ec->comp_data->sub.list, l, subc)
|
||||||
{
|
{
|
||||||
x = ec->x + subc->comp_data->sub.cdata->position.x;
|
x = ec->x + subc->comp_data->sub.cdata->position.x;
|
||||||
|
@ -1132,6 +1136,8 @@ _e_comp_wl_cb_client_iconify(void *data EINA_UNUSED, int type EINA_UNUSED, void
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = ev->ec)) return ECORE_CALLBACK_PASS_ON;
|
if (!(ec = ev->ec)) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
|
E_COMP_WL_PIXMAP_CHECK ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
if (_e_comp_wl_client_subsurf_data_get(ec))
|
if (_e_comp_wl_client_subsurf_data_get(ec))
|
||||||
{
|
{
|
||||||
ec = _e_comp_wl_subsurface_root_get(ec);
|
ec = _e_comp_wl_subsurface_root_get(ec);
|
||||||
|
@ -1157,6 +1163,8 @@ _e_comp_wl_cb_client_uniconify(void *data EINA_UNUSED, int type EINA_UNUSED, voi
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = ev->ec)) return ECORE_CALLBACK_PASS_ON;
|
if (!(ec = ev->ec)) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
|
E_COMP_WL_PIXMAP_CHECK ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
if (_e_comp_wl_client_subsurf_data_get(ec))
|
if (_e_comp_wl_client_subsurf_data_get(ec))
|
||||||
{
|
{
|
||||||
ec = _e_comp_wl_subsurface_root_get(ec);
|
ec = _e_comp_wl_subsurface_root_get(ec);
|
||||||
|
@ -1299,6 +1307,7 @@ _e_comp_wl_evas_cb_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EIN
|
||||||
|
|
||||||
if (restacking) return;
|
if (restacking) return;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if ((!ec->comp_data->sub.list) &&
|
if ((!ec->comp_data->sub.list) &&
|
||||||
(!_e_comp_wl_client_subsurf_data_get(ec))) return;
|
(!_e_comp_wl_client_subsurf_data_get(ec))) return;
|
||||||
|
|
||||||
|
@ -1815,6 +1824,8 @@ _e_comp_wl_evas_cb_show(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EIN
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
|
|
||||||
if (!ec->override)
|
if (!ec->override)
|
||||||
e_hints_window_visible_set(ec);
|
e_hints_window_visible_set(ec);
|
||||||
|
|
||||||
|
@ -1849,6 +1860,7 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
|
|
||||||
wc = wl_resource_get_client(ec->comp_data->surface);
|
wc = wl_resource_get_client(ec->comp_data->surface);
|
||||||
|
@ -1873,6 +1885,7 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob
|
||||||
uint32_t serial;
|
uint32_t serial;
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (ec->cur_mouse_action) return;
|
if (ec->cur_mouse_action) return;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
|
|
||||||
|
@ -1898,6 +1911,7 @@ _e_comp_wl_evas_cb_mouse_down(void *data, Evas *evas EINA_UNUSED, Evas_Object *o
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (ec->cur_mouse_action) return;
|
if (ec->cur_mouse_action) return;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
if (e_client_util_ignored_get(ec)) return;
|
if (e_client_util_ignored_get(ec)) return;
|
||||||
|
@ -1943,6 +1957,7 @@ _e_comp_wl_evas_cb_mouse_up(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (ec->cur_mouse_action) return;
|
if (ec->cur_mouse_action) return;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
if (e_client_util_ignored_get(ec)) return;
|
if (e_client_util_ignored_get(ec)) return;
|
||||||
|
@ -1989,6 +2004,7 @@ _e_comp_wl_evas_cb_mouse_wheel(void *data, Evas *evas EINA_UNUSED, Evas_Object *
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (ec->cur_mouse_action) return;
|
if (ec->cur_mouse_action) return;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
if (e_client_util_ignored_get(ec)) return;
|
if (e_client_util_ignored_get(ec)) return;
|
||||||
|
@ -2023,6 +2039,7 @@ _e_comp_wl_evas_cb_mouse_move(void *data, Evas *evas EINA_UNUSED, Evas_Object *o
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (ec->cur_mouse_action) return;
|
if (ec->cur_mouse_action) return;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
if (e_client_util_ignored_get(ec)) return;
|
if (e_client_util_ignored_get(ec)) return;
|
||||||
|
@ -2056,6 +2073,7 @@ _e_comp_wl_evas_cb_key_down(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
|
|
||||||
if (!ec->focused) return;
|
if (!ec->focused) return;
|
||||||
|
@ -2101,6 +2119,7 @@ _e_comp_wl_evas_cb_key_up(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj E
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
|
|
||||||
if (!ec->focused) return;
|
if (!ec->focused) return;
|
||||||
|
@ -2138,6 +2157,7 @@ _e_comp_wl_evas_cb_focus_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
|
||||||
uint32_t serial, *k;
|
uint32_t serial, *k;
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
|
|
||||||
/* block refocus attempts on iconic clients
|
/* block refocus attempts on iconic clients
|
||||||
|
@ -2178,6 +2198,7 @@ _e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob
|
||||||
uint32_t serial, *k;
|
uint32_t serial, *k;
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (e_object_is_del(E_OBJECT(ec))) return;
|
if (e_object_is_del(E_OBJECT(ec))) return;
|
||||||
|
|
||||||
/* priority normal */
|
/* priority normal */
|
||||||
|
@ -2202,6 +2223,7 @@ _e_comp_wl_evas_cb_resize(void *data, Evas_Object *obj EINA_UNUSED, void *event
|
||||||
E_Client *ec;
|
E_Client *ec;
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if ((ec->shading) || (ec->shaded)) return;
|
if ((ec->shading) || (ec->shaded)) return;
|
||||||
if (!e_pixmap_size_changed(ec->pixmap, ec->client.w, ec->client.h))
|
if (!e_pixmap_size_changed(ec->pixmap, ec->client.w, ec->client.h))
|
||||||
return;
|
return;
|
||||||
|
@ -2223,6 +2245,7 @@ _e_comp_wl_evas_cb_frame_recalc(void *data, Evas_Object *obj, void *event)
|
||||||
fr = event;
|
fr = event;
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (evas_object_visible_get(obj))
|
if (evas_object_visible_get(obj))
|
||||||
ec->comp_data->frame_update = EINA_FALSE;
|
ec->comp_data->frame_update = EINA_FALSE;
|
||||||
else
|
else
|
||||||
|
@ -2247,6 +2270,7 @@ _e_comp_wl_evas_cb_delete_request(void *data, Evas_Object *obj EINA_UNUSED, void
|
||||||
E_Comp *comp;
|
E_Comp *comp;
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (ec->netwm.ping) e_client_ping(ec);
|
if (ec->netwm.ping) e_client_ping(ec);
|
||||||
|
|
||||||
/* FIXME !!!
|
/* FIXME !!!
|
||||||
|
@ -2287,6 +2311,7 @@ _e_comp_wl_evas_cb_kill_request(void *data, Evas_Object *obj EINA_UNUSED, void *
|
||||||
E_Comp *comp;
|
E_Comp *comp;
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
/* if (ec->netwm.ping) e_client_ping(ec); */
|
/* if (ec->netwm.ping) e_client_ping(ec); */
|
||||||
|
|
||||||
comp = ec->comp;
|
comp = ec->comp;
|
||||||
|
@ -2312,6 +2337,7 @@ _e_comp_wl_evas_cb_ping(void *data, Evas_Object *obj EINA_UNUSED, void *event EI
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
if (ec->comp_data->shell.ping)
|
if (ec->comp_data->shell.ping)
|
||||||
{
|
{
|
||||||
if (ec->comp_data->shell.surface)
|
if (ec->comp_data->shell.surface)
|
||||||
|
@ -2326,6 +2352,7 @@ _e_comp_wl_evas_cb_color_set(void *data, Evas_Object *obj, void *event EINA_UNUS
|
||||||
int a = 0;
|
int a = 0;
|
||||||
|
|
||||||
if (!(ec = data)) return;
|
if (!(ec = data)) return;
|
||||||
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
evas_object_color_get(obj, NULL, NULL, NULL, &a);
|
evas_object_color_get(obj, NULL, NULL, NULL, &a);
|
||||||
if (ec->netwm.opacity == a) return;
|
if (ec->netwm.opacity == a) return;
|
||||||
ec->netwm.opacity = a;
|
ec->netwm.opacity = a;
|
||||||
|
@ -3010,7 +3037,7 @@ _e_comp_wl_cb_hook_client_eval_end(void *data EINA_UNUSED, E_Client *ec)
|
||||||
static void
|
static void
|
||||||
_e_comp_wl_cb_hook_client_focus_set(void *data EINA_UNUSED, E_Client *ec)
|
_e_comp_wl_cb_hook_client_focus_set(void *data EINA_UNUSED, E_Client *ec)
|
||||||
{
|
{
|
||||||
// E_COMP_WL_PIXMAP_CHECK;
|
E_COMP_WL_PIXMAP_CHECK;
|
||||||
|
|
||||||
if (ec->comp_data->shell.activate)
|
if (ec->comp_data->shell.activate)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue