discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=15ea006eb54324734649da6788444983f59b16b4

commit 15ea006eb54324734649da6788444983f59b16b4
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Thu Sep 28 13:03:41 2017 -0400

    block client rescales during render updates
    
    this guarantees misrenders
---
 src/bin/e_client.c | 13 +++++++++++++
 src/bin/e_client.h |  1 +
 2 files changed, 14 insertions(+)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 1af0d7f16..7fc645a18 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2107,6 +2107,11 @@ _e_client_eval(E_Client *ec)
         rem_change = 1;
         prop |= E_CLIENT_PROPERTY_POS;
      }
+   if (ec->changes.need_rescale)
+     {
+        e_client_rescale(ec);
+        ec->changes.need_rescale = 0;
+     }
 
    if (ec->changes.reset_gravity)
      {
@@ -3326,6 +3331,14 @@ e_client_rescale(E_Client *ec)
    E_OBJECT_CHECK(ec);
    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;
    shade_dir = ec->shade_dir;
    if (shaded) e_client_unshade(ec, shade_dir);
diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 9aafa9897..3687ddfd1 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -586,6 +586,7 @@ struct E_Client
       Eina_Bool internal_state : 1;
       Eina_Bool need_maximize : 1;
       Eina_Bool need_unmaximize : 1;
+      Eina_Bool need_rescale : 1;
    } changes;
 
    unsigned int       visible : 1; // client is set to be visible by display 
server (never use this)

-- 


Reply via email to