e_hwc_window: reference hwc_window of cursor when display info is set 60/243560/1 accepted/tizen/unified/20200908.073754 submit/tizen/20200908.071647
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 8 Sep 2020 04:41:26 +0000 (13:41 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Tue, 8 Sep 2020 06:48:07 +0000 (15:48 +0900)
Change-Id: Ia86caf5aa1a21936058b811314750a74139eeb45

src/bin/e_hwc_window.c

index 301714724ee8b27ee1c19e19efb0f146c6d74d02..ee56efb0d5a22c4fe66a1501d3cab2d7dce75cfa 100644 (file)
@@ -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);
           }