EINA_LIST_FOREACH(hwc->hwc_windows, l, hwc_window)
{
commit_data = e_hwc_window_commit_data_acquire(hwc_window);
- if (!commit_data) continue;
+ if (!commit_data)
+ {
+ if ((hwc->hwc_mode == E_HWC_MODE_FULL) &&
+ (!e_hwc_window_is_on_hw_overlay(hwc_window)))
+ {
+ _e_hwc_windows_presentation_callback_take(hwc_window);
+ e_hwc_window_presentation_callback_call(hwc_window);
+ }
+
+ continue;
+ }
_e_hwc_windows_presentation_feedback_take(hwc_window);
_e_hwc_windows_presentation_callback_take(hwc_window);
if (hwc_window->is_target) continue;
commit_data = e_hwc_window_commit_data_acquire(hwc_window);
- if (!commit_data) continue;
+ if (!commit_data)
+ {
+ if ((hwc->hwc_mode == E_HWC_MODE_FULL) &&
+ (!e_hwc_window_is_on_hw_overlay(hwc_window)))
+ {
+ _e_hwc_windows_presentation_callback_take(hwc_window);
+ e_hwc_window_presentation_callback_call(hwc_window);
+ }
+
+ continue;
+ }
EHWSTRACE("!!!!!!!! HWC OffScreen Commit !!!!!!!!", NULL, hwc);