Remove e_client_transform_core_update in e_client_transform_core_remove 76/254976/3 accepted/tizen/unified/20210312.142507 submit/tizen/20210311.063230
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 11 Mar 2021 05:38:30 +0000 (14:38 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 11 Mar 2021 06:27:21 +0000 (15:27 +0900)
When we change or replace some transform (remove old transform and add new transform),
there was an unnecessary calculation for removing old transform because of calling
e_client_transform_core_update in e_client_transform_core_remove().
So, we remove e_client_transform_core_update in e_client_transform_core_remove.

FYI,
e_client_transform_core_update is called in idler_before handler(exactly _e_client_eval).
If we want to apply transform immediately, we have to call e_client_transform_core_update
after calling e_client_transform_core_remove.

Change-Id: I17b2cbb360769ca69793d6ca55cffab4178feba4

src/bin/e_client.c
src/bin/e_desk_group.c
src/bin/e_slot.c

index d3a60a3..6d27ac6 100644 (file)
@@ -1370,6 +1370,7 @@ _e_client_del(E_Client *ec)
    ec->transform_core.result.enable = EINA_FALSE;
 
    e_client_desk_group_set(ec, NULL);
+   e_client_transform_core_remove(ec, ec->desk_group.transform);
    e_util_transform_del(ec->desk_group.transform);
    ec->desk_group.transform = NULL;
 
@@ -7250,7 +7251,7 @@ e_client_transform_core_remove(E_Client *ec, E_Util_Transform *transform)
         ec->transform_core.changed = EINA_TRUE;
      }
 
-   e_client_transform_core_update(ec);
+   // e_client_transform_core_update(ec);
 }
 
 E_API void
@@ -7656,6 +7657,7 @@ _e_client_base_output_resolution_hook_subsurf_create(void *data, E_Client *ec)
    ec->base_output_resolution.w = 0;
    ec->base_output_resolution.h = 0;
    e_client_transform_core_remove(ec, ec->base_output_resolution.transform);
+   e_client_transform_core_update(ec);
    E_FREE_FUNC(ec->base_output_resolution.transform, e_util_transform_del);
    E_FREE_FUNC(ec->base_output_resolution.hook_subsurf_create, e_comp_wl_hook_del);
 
@@ -7838,6 +7840,7 @@ e_client_base_output_resolution_rsm_update(E_Client *bind_ec, E_Client *provider
        bind_ec->base_output_resolution.w = 0;
        bind_ec->base_output_resolution.h = 0;
        e_client_transform_core_remove(bind_ec, bind_ec->base_output_resolution.transform);
+       e_client_transform_core_update(bind_ec);
        E_FREE_FUNC(bind_ec->base_output_resolution.transform, e_util_transform_del);
     }
 
@@ -8119,6 +8122,7 @@ e_client_desk_group_enable_set(E_Client *ec, Eina_Bool enable)
         if (ec->desk_group.transform)
           {
              e_client_transform_core_remove(ec, ec->desk_group.transform);
+             e_client_transform_core_update(ec);
              e_util_transform_del(ec->desk_group.transform);
              ec->desk_group.transform = NULL;
           }
index 4ba4bb9..63a044d 100644 (file)
@@ -129,6 +129,7 @@ _e_desk_group_cb_hook_subsurface_create(void *data, E_Client *ec)
    if (ec->desk_group.transform)
      {
         e_client_transform_core_remove(ec, ec->desk_group.transform);
+        e_client_transform_core_update(ec);
      }
 }
 
index bdfb1da..17c777a 100644 (file)
@@ -744,6 +744,7 @@ _e_slot_client_type_restore(E_Slot_Client* slot_client)
          if (slot_client->transform)
            {
               e_client_transform_core_remove(slot_client->ec, slot_client->transform);
+              e_client_transform_core_update(slot_client->ec);
               e_util_transform_del(slot_client->transform);
               slot_client->transform = NULL;