discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=1d5977c02a91a0dfe7ecaa6a17e715c15c06e1ec

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

    do not unnecessarily rescale clients
    
    this function is mainly for rescaling maximized/fullscreen clients to fit 
new
    dimensions, so don't call on other clients since this can trigger unwanted 
resize
     events
---
 src/bin/e_client.c | 8 ++++++--
 src/bin/e_comp.c   | 3 ++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 7fc645a18..66e860880 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2874,7 +2874,10 @@ e_client_desk_set(E_Client *ec, E_Desk *desk)
         ecore_event_add(E_EVENT_CLIENT_DESK_SET, ev, 
(Ecore_End_Cb)_e_client_event_desk_set_free, NULL);
 
         if (old_desk->zone == ec->zone)
-          e_client_rescale(ec);
+          {
+             if (ec->maximized || ec->fullscreen)
+               e_client_rescale(ec);
+          }
      }
 
    if (ec->stack.prev || ec->stack.next)
@@ -3407,7 +3410,8 @@ e_client_zone_set(E_Client *ec, E_Zone *zone)
    ecore_event_add(E_EVENT_CLIENT_ZONE_SET, ev, 
(Ecore_End_Cb)_e_client_event_zone_set_free, NULL);
 
    e_remember_update(ec);
-   e_client_rescale(ec);
+   if (ec->maximized || ec->fullscreen)
+     e_client_rescale(ec);
 }
 
 E_API void
diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 63e4c6d40..7f78f0365 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -1829,7 +1829,8 @@ e_comp_clients_rescale(void)
         EINA_LIST_FREE(tmp, ec)
           {
              ec->pre_res_change.valid = 0;
-             e_client_rescale(ec);
+             if (ec->maximized || ec->fullscreen)
+               e_client_rescale(ec);
           }
      }
 }

-- 


Reply via email to