tpl_bool_t reset; /* TRUE if queue reseted by external */
tdm_client_vblank *tdm_vblank; /* vblank object for each wl_surface */
tpl_bool_t vblank_done;
+ tpl_bool_t is_activated;
tpl_list_t *attached_buffers; /* list for tracking [ACQ]~[REL] buffers */
tpl_list_t *dequeued_buffers; /* list for tracking [DEQ]~[ENQ] buffers */
struct tizen_surface_shm_flusher *tizen_surface_shm_flusher; /* wl_proxy for buffer flush */
wayland_egl_surface->resized = TPL_FALSE;
wayland_egl_surface->reset = TPL_FALSE;
wayland_egl_surface->vblank_done = TPL_TRUE;
+ wayland_egl_surface->is_activated = TPL_FALSE;
wayland_egl_surface->current_buffer = NULL;
wayland_egl_surface->attached_buffers = __tpl_list_alloc();
wayland_egl_buffer->height = wl_egl_window->height;
wayland_egl_buffer->rotation = wl_egl_window->rotation;
wayland_egl_buffer->reset = TPL_FALSE;
- wayland_egl_buffer->is_new = TPL_FALSE;
+
+ if (wayland_egl_surface->is_activated != is_activated)
+ wayland_egl_buffer->is_new = TPL_TRUE;
wayland_egl_surface->reset = TPL_FALSE;
+ wayland_egl_surface->is_activated = is_activated;
if (wayland_egl_surface->dequeued_buffers) {
TPL_OBJECT_LOCK(&wayland_egl_surface->base);
/* 'is_new' flag is to check wheter it is a new buffer need to commit
* in frontbuffer mode. */
wayland_egl_buffer->is_new = TPL_TRUE;
+ wayland_egl_surface->is_activated = is_activated;
wayland_egl_surface->current_buffer = tbm_surface;
wayland_egl_surface->reset = TPL_FALSE;