From: Changyeon Lee Date: Wed, 18 Dec 2024 12:06:01 +0000 (+0900) Subject: e_hwc_window: Fix the bug where the changed is not set X-Git-Tag: accepted/tizen/9.0/unified/20241224.014905~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a0614e2062f4e257d54bd20f22006dd126ee444f;p=platform%2Fupstream%2Fenlightenment.git e_hwc_window: Fix the bug where the changed is not set There is a bug where e_hwc_windows_changed_set do not set changed. 1. set E_HWC_WINS_CHANGED_WIN_GEOMETRY 2. set E_HWC_WINS_CHANGED_WIN_BUFFER|E_HWC_WINS_CHANGED_WIN_GEOMETRY 3. E_HWC_WINS_CHANGED_WIN_BUFFER is not set because below condition is true. if (hwc_window->changed & changed) Do not use with e_hwc_window_changed_set with multiple E_Hwc_Wins_Changed. Change-Id: Id8639b44b52d61e2672a16139b15605a60d179ff --- diff --git a/src/bin/displaymgr/e_hwc_window.c b/src/bin/displaymgr/e_hwc_window.c index e1ad172cb3..b56b05c905 100644 --- a/src/bin/displaymgr/e_hwc_window.c +++ b/src/bin/displaymgr/e_hwc_window.c @@ -1390,7 +1390,8 @@ _e_hwc_window_cb_update_lock_unset(void *data, E_Client *ec) if (!hwc_window) return EINA_TRUE; e_hwc_window_restriction_unset(hwc_window, E_HWC_WINDOW_RESTRICTION_RENDER_UPDATE_LOCK); - e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER | E_HWC_WINS_CHANGED_WIN_GEOMETRY); + e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER); + e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_GEOMETRY); return EINA_TRUE; } @@ -3139,7 +3140,8 @@ e_hwc_window_pending_update_data_dequeue_cancel(E_Hwc_Window *hwc_window, E_Hwc_ e_comp_wl_buffer_reference(&update->buffer_ref, NULL); e_hwc_window_buffer_set(&update->buffer, NULL, NULL, 0); - e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER|E_HWC_WINS_CHANGED_WIN_GEOMETRY); + e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER); + e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_GEOMETRY); hwc_window->pending_update_list = eina_list_remove(hwc_window->pending_update_list, update); @@ -3176,7 +3178,8 @@ e_hwc_window_pending_update_data_enqueue(E_Hwc_Window *hwc_window, E_Hwc_Window_ e_comp_wl_buffer_reference(&update->buffer_ref, NULL); e_hwc_window_buffer_set(&update->buffer, NULL, NULL, 0); - e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER|E_HWC_WINS_CHANGED_WIN_GEOMETRY); + e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER); + e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_GEOMETRY); hwc_window->pending_update_list = eina_list_remove(hwc_window->pending_update_list, update); diff --git a/src/bin/displaymgr/e_hwc_windows.c b/src/bin/displaymgr/e_hwc_windows.c index 7559a8c545..43feb18b2f 100644 --- a/src/bin/displaymgr/e_hwc_windows.c +++ b/src/bin/displaymgr/e_hwc_windows.c @@ -1109,7 +1109,8 @@ _e_hwc_windows_pending_update_data_clear(E_Hwc_Window_Target *root_target_hwc_wi EINA_LIST_FREE(target_hwc_window->present_sync_windows, hwc_window) { hwc_window->present_sync = EINA_FALSE; - e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER|E_HWC_WINS_CHANGED_WIN_GEOMETRY); + e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER); + e_hwc_window_changed_set(hwc_window, E_HWC_WINS_CHANGED_WIN_GEOMETRY); e_object_unref(E_OBJECT(hwc_window)); } } diff --git a/src/bin/displaymgr/video/e_video_hwc.c b/src/bin/displaymgr/video/e_video_hwc.c index c3b37276e4..c60f4cb771 100644 --- a/src/bin/displaymgr/video/e_video_hwc.c +++ b/src/bin/displaymgr/video/e_video_hwc.c @@ -367,7 +367,8 @@ _e_video_hwc_buffer_commit(E_Video_Hwc *evh, E_Comp_Wl_Video_Buf *vbuf) if (!_e_video_hwc_commit_data_set(evh, vbuf)) return EINA_FALSE; - e_hwc_window_changed_set(evh->hwc_window, E_HWC_WINS_CHANGED_WIN_GEOMETRY|E_HWC_WINS_CHANGED_WIN_BUFFER); + e_hwc_window_changed_set(evh->hwc_window, E_HWC_WINS_CHANGED_WIN_BUFFER); + e_hwc_window_changed_set(evh->hwc_window, E_HWC_WINS_CHANGED_WIN_GEOMETRY); _e_video_hwc_mask_update(evh);