forked from enlightenment/enlightenment
block client rescales during render updates
this guarantees misrenders
This commit is contained in:
parent
80349d417d
commit
15ea006eb5
|
@ -2107,6 +2107,11 @@ _e_client_eval(E_Client *ec)
|
||||||
rem_change = 1;
|
rem_change = 1;
|
||||||
prop |= E_CLIENT_PROPERTY_POS;
|
prop |= E_CLIENT_PROPERTY_POS;
|
||||||
}
|
}
|
||||||
|
if (ec->changes.need_rescale)
|
||||||
|
{
|
||||||
|
e_client_rescale(ec);
|
||||||
|
ec->changes.need_rescale = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (ec->changes.reset_gravity)
|
if (ec->changes.reset_gravity)
|
||||||
{
|
{
|
||||||
|
@ -3326,6 +3331,14 @@ e_client_rescale(E_Client *ec)
|
||||||
E_OBJECT_CHECK(ec);
|
E_OBJECT_CHECK(ec);
|
||||||
E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
|
E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
|
||||||
|
|
||||||
|
if (e_comp->updating)
|
||||||
|
{
|
||||||
|
ec->changes.need_rescale = 1;
|
||||||
|
EC_CHANGED(ec);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ec->changes.need_rescale = 0;
|
||||||
|
|
||||||
shaded = ec->shaded;
|
shaded = ec->shaded;
|
||||||
shade_dir = ec->shade_dir;
|
shade_dir = ec->shade_dir;
|
||||||
if (shaded) e_client_unshade(ec, shade_dir);
|
if (shaded) e_client_unshade(ec, shade_dir);
|
||||||
|
|
|
@ -586,6 +586,7 @@ struct E_Client
|
||||||
Eina_Bool internal_state : 1;
|
Eina_Bool internal_state : 1;
|
||||||
Eina_Bool need_maximize : 1;
|
Eina_Bool need_maximize : 1;
|
||||||
Eina_Bool need_unmaximize : 1;
|
Eina_Bool need_unmaximize : 1;
|
||||||
|
Eina_Bool need_rescale : 1;
|
||||||
} changes;
|
} changes;
|
||||||
|
|
||||||
unsigned int visible : 1; // client is set to be visible by display server (never use this)
|
unsigned int visible : 1; // client is set to be visible by display server (never use this)
|
||||||
|
|
Loading…
Reference in New Issue