From: Juyeon Lee Date: Thu, 20 Jun 2019 08:42:47 +0000 (+0900) Subject: e_client: eval aux hints for clients which is ignored but commit made X-Git-Tag: submit/tizen/20190702.092333~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=74ca72fe59bc19cde9dc4d26bbac925a34bdf86c;p=platform%2Fupstream%2Fenlightenment.git 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 --- diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 26430a75f1..11a266d6d1 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 e70d3c1df0..482dac4e02 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 786ceb55d4..55deed27a4 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;