summaryrefslogtreecommitdiff
path: root/src/backends/meta-stage.c
diff options
context:
space:
mode:
authorMarco Trevisan (TreviƱo) <mail@3v1n0.net>2019-02-28 22:50:50 +0100
committerMarco Trevisan <mail@3v1n0.net>2019-03-01 17:46:49 +0000
commitf4c2b69934e05c4e308256247109b9610a8d085e (patch)
tree03a5e03a553b98af5b1e99f27ff7356d732e48ed /src/backends/meta-stage.c
parentd7ec5d3022613bcce0366a5ae4ee53ba0c581175 (diff)
downloadmutter-f4c2b69934e05c4e308256247109b9610a8d085e.tar.gz
stage: Clamp to pixel the redraw clip taking care of the floored coords
When we floor the quad coordinates then we've also to enlarge the quad by the difference between the floored value and the actual coordinate, otherwise we'd end up in a smaller quad. https://gitlab.gnome.org/GNOME/mutter/merge_requests/3
Diffstat (limited to 'src/backends/meta-stage.c')
-rw-r--r--src/backends/meta-stage.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/backends/meta-stage.c b/src/backends/meta-stage.c
index f536fc23a..425926a7c 100644
--- a/src/backends/meta-stage.c
+++ b/src/backends/meta-stage.c
@@ -225,6 +225,11 @@ queue_redraw_clutter_rect (MetaStage *stage,
.height = ceilf (rect->size.height)
};
+ /* Since we're flooring the coordinates, we need to enlarge the clip by the
+ * difference between the actual coordinate and the floored value */
+ clip.width += ceilf (rect->origin.x - clip.x) * 2;
+ clip.height += ceilf (rect->origin.y - clip.y) * 2;
+
clutter_actor_queue_redraw_with_clip (CLUTTER_ACTOR (stage), &clip);
}