libweston: Fix "fix paint_node_damage_below"

Commit 43b59786 errantly claimed that paint_node_damage_below() needed to
damage all planes because it's used when moving paint nodes between
planes.

This is wrong because the destination plane will receive damage correctly
from paint_node_update_late() when the node's visible region is added to
its damage.

Leave the rest of that commit's changes, but make it once again only
damage the plane the node is currently on.

The problem this caused is easily seen by turning on triangle fan debug
and moving the mouse. Extra damage is generated beneath the cursor plane.

Fixes 43b59786

Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
This commit is contained in:
Derek Foreman 2023-07-31 14:19:49 -05:00 committed by Marius Vlad
parent 1d59530e4b
commit ea4700c81f
1 changed files with 3 additions and 0 deletions

View File

@ -164,6 +164,9 @@ paint_node_damage_below(struct weston_paint_node *pnode)
if (lower_node == pnode)
break;
if (lower_node->plane != pnode->plane)
continue;
pixman_region32_union(&lower_node->damage, &lower_node->damage,
&pnode->visible);
}