From: Changyeon Lee Date: Tue, 8 Apr 2025 03:11:42 +0000 (+0900) Subject: Revert "e_policy: Flush buffer of e_client when client is unmap state" X-Git-Tag: accepted/tizen/unified/20250410.082858~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F62%2F322362%2F1;p=platform%2Fupstream%2Fenlightenment.git Revert "e_policy: Flush buffer of e_client when client is unmap state" This reverts commit 1cce42220436949a4f30d36715b5e63cee573959. Change-Id: Ifa0a2f723e4fe90e204d3a4ecfda023e1a0e8da5 --- diff --git a/src/bin/core/e_client.c b/src/bin/core/e_client.c index a46c44da1b..8f5f55415f 100644 --- a/src/bin/core/e_client.c +++ b/src/bin/core/e_client.c @@ -8241,21 +8241,6 @@ e_client_subsurface_data_try_get(E_Client *ec) return ec->comp_data ? ec->comp_data->sub.data : NULL; } -EINTERN Eina_Bool -e_client_buffer_flush_enabled_get(E_Client *ec) -{ - if (!ec) return EINA_FALSE; - if (!ec->comp_data) return EINA_FALSE; - if (!ec->exp_iconify.buffer_flush) return EINA_FALSE; - if (e_view_client_visible_get(e_client_view_get(ec))) return EINA_FALSE; - if (ec->is_cursor) return EINA_FALSE; - - if (e_policy_visibility_client_is_iconic(ec)) return EINA_TRUE; - if (!ec->comp_data->mapped) return EINA_TRUE; - - return EINA_FALSE; -} - EINTERN Eina_Bool e_client_is_input_acceptable(E_Client *ec) { diff --git a/src/bin/core/e_client_intern.h b/src/bin/core/e_client_intern.h index 23bb40e9a6..4a23f95c5b 100644 --- a/src/bin/core/e_client_intern.h +++ b/src/bin/core/e_client_intern.h @@ -259,8 +259,6 @@ int e_client_virtual_touch_finger_get(E_Client *ec); void e_client_virtual_touch_threshold_set(E_Client *ec, int threshold); int e_client_virtual_touch_threshold_get(E_Client *ec); -EINTERN Eina_Bool e_client_buffer_flush_enabled_get(E_Client *ec); - Eina_Bool e_client_is_input_acceptable(E_Client *ec); EINTERN void e_client_resize_edges_set(E_Client *ec, uint32_t edges); diff --git a/src/bin/displaymgr/e_hwc_window.c b/src/bin/displaymgr/e_hwc_window.c index 3b8d156fd5..8d5d01e63b 100644 --- a/src/bin/displaymgr/e_hwc_window.c +++ b/src/bin/displaymgr/e_hwc_window.c @@ -2826,7 +2826,9 @@ _e_hwc_window_client_recover(E_Hwc_Window *hwc_window, Eina_Bool *clear_attach) comp_wl_buffer = _e_hwc_window_comp_wl_buffer_get(hwc_window); if ((!comp_wl_buffer) && - (e_client_buffer_flush_enabled_get(ec))) + (!e_view_client_visible_get(e_client_view_get(ec))) && + (ec->exp_iconify.buffer_flush) && + (e_policy_visibility_client_is_iconic(ec))) return EINA_FALSE; if (!comp_wl_buffer) diff --git a/src/bin/displaymgr/e_hwc_window_queue.c b/src/bin/displaymgr/e_hwc_window_queue.c index af6251221c..81f6087b3b 100644 --- a/src/bin/displaymgr/e_hwc_window_queue.c +++ b/src/bin/displaymgr/e_hwc_window_queue.c @@ -1375,7 +1375,9 @@ _e_hwc_window_queue_copy_thread_run_end_cb(void *data, Ecore_Thread *thread) if (!(ec = copy_thread_data->hwc_window->ec)) goto end; if (!e_client_cdata_get(ec)) goto end; - if (e_client_buffer_flush_enabled_get(ec)) + if ((!e_view_client_visible_get(e_client_view_get(ec))) && + (ec->exp_iconify.buffer_flush) && + (e_policy_visibility_client_is_iconic(ec))) goto end; comp_buffer = _comp_wl_buffer_get(ec); @@ -1593,7 +1595,9 @@ _e_hwc_window_queue_prepare_unset(E_Hwc_Window_Queue *queue) if (!hwc_window->ec) return; - if (e_client_buffer_flush_enabled_get(hwc_window->ec)) + if ((!e_view_client_visible_get(e_client_view_get(hwc_window->ec))) && + (hwc_window->ec->exp_iconify.buffer_flush) && + (e_policy_visibility_client_is_iconic(hwc_window->ec))) return; _e_hwc_window_queue_copy_thread_check_and_run(hwc_window); @@ -1697,7 +1701,9 @@ _e_hwc_window_queue_cb_buffer_change(void *data, E_Client *ec) hwc_window = ec->hwc_window; if (!hwc_window) return; - if (e_client_buffer_flush_enabled_get(hwc_window->ec)) + if ((!e_view_client_visible_get(e_client_view_get(ec))) && + (ec->exp_iconify.buffer_flush) && + (e_policy_visibility_client_is_iconic(ec))) return; _e_hwc_window_queue_copy_thread_check_and_run(hwc_window); diff --git a/src/bin/server/e_comp_wl.c b/src/bin/server/e_comp_wl.c index 82caf44d2a..eeb7d8f37d 100644 --- a/src/bin/server/e_comp_wl.c +++ b/src/bin/server/e_comp_wl.c @@ -3341,8 +3341,12 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) wl_signal_emit(&cdata->state_commit_signal, &cdata->surface); buffer = e_surface_buffer_try_get(surface); - if ((buffer) && (e_client_buffer_flush_enabled_get(ec))) - e_pixmap_buffer_clear(ec->pixmap, EINA_FALSE); + if (buffer && + ec->exp_iconify.buffer_flush && + e_policy_visibility_client_is_iconic(ec)) + { + e_pixmap_buffer_clear(ec->pixmap, EINA_FALSE); + } } static void diff --git a/src/bin/windowmgr/e_policy.c b/src/bin/windowmgr/e_policy.c index 7fd419800c..f1f9105063 100644 --- a/src/bin/windowmgr/e_policy.c +++ b/src/bin/windowmgr/e_policy.c @@ -1987,7 +1987,8 @@ _e_policy_client_pixmap_buffer_clear(E_Policy_Client *policy_client, Eina_Bool o E_Tizen_Surface_Shm *surface_shm; E_Tizen_Surface_Shm_Flusher *surface_shm_flusher = NULL; - if ((!only_free) && (!e_client_buffer_flush_enabled_get(ec))) return; + /* if not only free, client should be iconic state */ + if (!only_free && !e_policy_visibility_client_is_iconic(ec)) return; surface_shm = (E_Tizen_Surface_Shm *)e_server_feature_handle_get(E_SERVER_FEATURE_TIZEN_SURFACE_SHM); if (surface_shm) diff --git a/src/bin/windowmgr/e_policy_visibility.c b/src/bin/windowmgr/e_policy_visibility.c index 2604741708..7d51f9af15 100644 --- a/src/bin/windowmgr/e_policy_visibility.c +++ b/src/bin/windowmgr/e_policy_visibility.c @@ -1132,7 +1132,7 @@ _e_vis_client_cb_view_hide(struct wl_listener *listener, void *data) VS_DBG(ec, "\tUPDATE ICONIC STATE: %s", STATE_STR(vc)); vc->prepare_emitted = 0; - if (e_client_buffer_flush_enabled_get(ec)) + if (ec->iconic && ec->exp_iconify.buffer_flush) e_pixmap_buffer_clear(ec->pixmap, EINA_FALSE); }