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
// 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))
{
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 &&
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;