From: Juan Zhao <juan.j.z...@linux.intel.com>

---
 src/compositor-drm.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 623799f..d94ef5c 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -149,7 +149,7 @@ drm_output_repaint(struct weston_output *output_base)
        struct drm_compositor *compositor =
                (struct drm_compositor *) output->base.compositor;
        struct weston_surface *surface;
-       uint32_t fb_id = 0;
+       uint32_t fb_id = 0, fullscreen_painted = 0;
 
        glFramebufferRenderbuffer(GL_FRAMEBUFFER,
                                  GL_COLOR_ATTACHMENT0,
@@ -163,10 +163,21 @@ drm_output_repaint(struct weston_output *output_base)
 
        wl_list_for_each_reverse(surface, &compositor->base.surface_list, link){
                if(!surface->fs_support.fullscreen_output) {
-                       weston_surface_draw(surface, &output->base);
+                       if (fullscreen_painted){
+                               weston_surface_draw(surface, &output->base);
+                       }
+                       else
+                               continue;
                } else {
                        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
                        weston_surface_draw(surface, &output->base);
+                       fullscreen_painted = 1;
+               }
+       }
+
+       if (!fullscreen_painted){
+               wl_list_for_each_reverse(surface, 
&compositor->base.surface_list, link){
+                               weston_surface_draw(surface, &output->base);
                }
        }
 
-- 
1.7.5.4

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to