block updating window remembers while applying them

some attrs (e.g., desk setting) change the position/size of a window before
another attr is set, changing the original value

fix T5295
This commit is contained in:
Mike Blumenkrantz 2017-08-18 15:52:52 -04:00
parent 35594d43f9
commit 528bad7252
2 changed files with 4 additions and 1 deletions

View File

@ -307,7 +307,7 @@ e_remember_apply(E_Remember *rem, E_Client *ec)
if (!rem)
return;
rem->applying = 1;
if (rem->apply & E_REMEMBER_APPLY_ZONE)
{
E_Zone *zone;
@ -577,6 +577,7 @@ e_remember_apply(E_Remember *rem, E_Client *ec)
}
}
rem->applying = 0;
if (temporary)
_e_remember_free(rem);
}
@ -713,6 +714,7 @@ _e_remember_event_free(void *d EINA_UNUSED, void *event)
static void
_e_remember_update(E_Client *ec, E_Remember *rem)
{
if (rem->applying) return;
if (rem->apply & E_REMEMBER_APPLY_POS ||
rem->apply & E_REMEMBER_APPLY_SIZE)
{

View File

@ -118,6 +118,7 @@ struct _E_Remember
} prop;
Eina_Stringshare *uuid;
int pid;
Eina_Bool applying : 1;
};
EINTERN int e_remember_init(E_Startup_Mode mode);