layout: Force a repaint of the entire output 05/23605/6
authorMarius Vlad <marius.vlad@collabora.com>
Mon, 6 Jan 2020 14:42:16 +0000 (16:42 +0200)
committerMarius Vlad <marius.vlad@collabora.com>
Wed, 29 Jan 2020 23:02:50 +0000 (01:02 +0200)
For clients which do not update their own contents, not repainting the
entire output will result in artefacts upon switching between running
applications. Forcing an entire output repaint solves it.

Bug-AGL: SPEC-3120

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I5279309a8e7a39ea588b405e08b7071e993f2584

src/layout.c

index 284c086..030e8b4 100644 (file)
@@ -191,7 +191,8 @@ ivi_layout_activate_complete(struct ivi_output *output,
        weston_layer_entry_insert(&ivi->normal.view_list, &view->layer_link);
        weston_view_update_transform(view);
 
-       weston_view_schedule_repaint(view);
+       /* force repaint of the entire output */
+       weston_output_damage(output->output);
        surf->desktop.pending_output = NULL;
 }
 
@@ -261,7 +262,8 @@ ivi_layout_activate(struct ivi_output *output, const char *app_id)
 
                weston_view_set_output(view, output->output);
                weston_layer_entry_insert(&ivi->hidden.view_list, &view->layer_link);
-               weston_view_schedule_repaint(view);
+               /* force repaint of the entire output */
+               weston_output_damage(output->output);
        }
 
        surf->desktop.pending_output = output;