From 74ca72fe59bc19cde9dc4d26bbac925a34bdf86c Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Thu, 20 Jun 2019 17:42:47 +0900 Subject: [PATCH] e_client: eval aux hints for clients which is ignored but commit made remote surface providers usally updates in offscree but its state is assigned as ignored handle such clients to have event E_CLIENT_HOOK_AUX_HINT_CHANGE Change-Id: I5c5696de1688b18c8cc68978142f7fb90f28a123 --- src/bin/e_client.c | 12 +++++++++++- src/bin/e_comp_wl.c | 3 +++ src/bin/e_comp_wl.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 26430a7..11a266d 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -3891,7 +3891,17 @@ e_client_idler_before(void) // pass 3 - hide windows needing hide and eval (main eval) E_CLIENT_FOREACH(ec) { - if (ec->ignored || e_object_is_del(E_OBJECT(ec))) continue; + if (e_object_is_del(E_OBJECT(ec)) continue; + if (ec->ignored) + { + // ignored client but needing eval (aux hint) such as remote surfaces + if (ec->changed) + { + if (ec->comp_data && ec->comp_data->first_commit) + _e_client_aux_hint_eval(ec); + } + continue; + } if ((ec->changes.visible) && (!ec->visible)) { diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index e70d3c1..482dac4 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2783,6 +2783,9 @@ _e_comp_wl_surface_cb_commit(struct wl_client *client EINA_UNUSED, struct wl_res if (!(ec = wl_resource_get_user_data(resource))) return; if (e_object_is_del(E_OBJECT(ec))) return; + if (!ec->comp_data->first_commit) + ec->comp_data->first_commit = EINA_TRUE; + if (!ec->comp_data->mapped) { if (ec->comp_data->shell.surface && ec->comp_data->pending.new_attach && diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index 786ceb5..55deed2 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -460,6 +460,7 @@ struct _E_Comp_Wl_Client_Data Eina_Bool video_client : 1; // Deprecated Eina_Bool has_video_client : 1; Eina_Bool never_hwc : 1; // force window not to do hwc + Eina_Bool first_commit : 1; // TRUE : once client committed unsigned char accepts_focus : 1; unsigned char conformant : 1; E_Window_Type win_type; -- 2.7.4