From c6fdfa44dfba17f534df922e72249252317524db Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Tue, 8 Sep 2020 13:41:26 +0900 Subject: [PATCH] e_hwc_window: reference hwc_window of cursor when display info is set Change-Id: Ia86caf5aa1a21936058b811314750a74139eeb45 --- src/bin/e_hwc_window.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/bin/e_hwc_window.c b/src/bin/e_hwc_window.c index 301714724e..ee56efb0d5 100644 --- a/src/bin/e_hwc_window.c +++ b/src/bin/e_hwc_window.c @@ -1448,7 +1448,11 @@ e_hwc_window_commit_data_acquire(E_Hwc_Window *hwc_window) { if (e_hwc_window_is_cursor(hwc_window)) { - if (!hwc_window->commit.buffer_ref.buffer) + tdm_hwc_window_info info; + + CLEAR(info); + + if (!memcmp(&hwc_window->commit.info, &info, sizeof(tdm_hwc_window_info))) return NULL; } else @@ -1568,15 +1572,27 @@ e_hwc_window_commit_data_release(E_Hwc_Window *hwc_window, E_Hwc_Window_Commit_D if (e_hwc_window_is_cursor(hwc_window)) { + tdm_hwc_window_info info; + + CLEAR(info); + if (commit_data->buffer_ref.buffer) { e_comp_wl_buffer_reference(&hwc_window->display.buffer_ref, commit_data->buffer_ref.buffer); + + if (!memcmp(&hwc_window->display.info, &info, sizeof(tdm_hwc_window_info))) + e_object_ref(E_OBJECT(hwc_window)); + memcpy(&hwc_window->display.info, &commit_data->info, sizeof(tdm_hwc_window_info)); } else { e_comp_wl_buffer_reference(&hwc_window->display.buffer_ref, NULL); + + if (memcmp(&hwc_window->display.info, &info, sizeof(tdm_hwc_window_info))) + e_object_unref(E_OBJECT(hwc_window)); + CLEAR(hwc_window->display.info); } -- 2.34.1