discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=528bad7252deb7f33fa75318977778b90938080e

commit 528bad7252deb7f33fa75318977778b90938080e
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 b551e5412..2119f50ad 100644
--- a/src/bin/e_remember.c
+++ b/src/bin/e_remember.c
@@ -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)
      {
diff --git a/src/bin/e_remember.h b/src/bin/e_remember.h
index 41c81cfe3..3edf8fe8d 100644
--- a/src/bin/e_remember.h
+++ b/src/bin/e_remember.h
@@ -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);

-- 


Reply via email to