Remove e_client_transform_core_update in e_client_transform_core_remove 81/254981/2 accepted/tizen/6.0/unified/20210312.104404 submit/tizen_6.0/20210311.063244
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:26:43 +0000 (15:26 +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 7725cd4bbaa298bc539c63b0ce11bf27ba89463b..45982502443c37d6d79a419870fbd3972beb2df4 100644 (file)
@@ -1366,6 +1366,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;
 
@@ -7229,7 +7230,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
@@ -7635,6 +7636,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);
 
@@ -7815,6 +7817,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);
     }
 
@@ -8096,6 +8099,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 53f48d4b295c5b4bbd27335a122412ffe85c8b1e..958f95d330d55311682d881edf329272c639a1d5 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 8d0d5de5a2161a06e52739dc95f9c847bf200029..c4475b48c50a09acbbd6fb74c33f047b4dd2ae6b 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;