discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=95831a19e1a6ebc209bb9613c261aaeded91eb0f
commit 95831a19e1a6ebc209bb9613c261aaeded91eb0f Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Fri Aug 18 15:52:52 2017 -0400 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 --- src/bin/e_remember.c | 4 +++- src/bin/e_remember.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_remember.c b/src/bin/e_remember.c index 6f5b60a44..092bca22d 100644 --- a/src/bin/e_remember.c +++ b/src/bin/e_remember.c @@ -299,7 +299,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; @@ -553,6 +553,7 @@ e_remember_apply(E_Remember *rem, E_Client *ec) if (rem->apply & E_REMEMBER_APPLY_OPACITY) ec->netwm.opacity = rem->prop.opacity; + rem->applying = 0; if (temporary) _e_remember_free(rem); } @@ -689,6 +690,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) { diff --git a/src/bin/e_remember.h b/src/bin/e_remember.h index 5f0bae490..bfc57fd44 100644 --- a/src/bin/e_remember.h +++ b/src/bin/e_remember.h @@ -112,6 +112,7 @@ struct _E_Remember } prop; Eina_Stringshare *uuid; int pid; + Eina_Bool applying : 1; }; EINTERN int e_remember_init(E_Startup_Mode mode); --