window: Only set opaque and input regions if they change
Setting these regions damages the entire window or causes a repick, which we don't want to trigger if we don't need to.
This commit is contained in:
+13
-2
@@ -818,8 +818,19 @@ window_attach_surface(struct window *window)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
wl_surface_set_input_region(window->surface, window->input_region);
|
if (window->input_region) {
|
||||||
wl_surface_set_opaque_region(window->surface, window->opaque_region);
|
wl_surface_set_input_region(window->surface,
|
||||||
|
window->input_region);
|
||||||
|
wl_region_destroy(window->input_region);
|
||||||
|
window->input_region = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window->opaque_region) {
|
||||||
|
wl_surface_set_opaque_region(window->surface,
|
||||||
|
window->opaque_region);
|
||||||
|
wl_region_destroy(window->opaque_region);
|
||||||
|
window->opaque_region = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
wl_surface_damage(window->surface, 0, 0,
|
wl_surface_damage(window->surface, 0, 0,
|
||||||
window->allocation.width,
|
window->allocation.width,
|
||||||
|
|||||||
Reference in New Issue
Block a user