{
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
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);
}