[mutter/wip/wayland-display: 54/55] meta-wayland: intersect the damage region with the window size before applying
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/wayland-display: 54/55] meta-wayland: intersect the damage region with the window size before applying
- Date: Tue, 30 Jul 2013 16:20:22 +0000 (UTC)
commit a8ba9219505a4a76e673df490ad7ef5630427d70
Author: Giovanni Campagna <gcampagn redhat com>
Date: Mon Jul 29 14:09:26 2013 +0200
meta-wayland: intersect the damage region with the window size before applying
According to the wayland documentation, damage outside the
window size is ignored.
This happened with xwayland+wlshm (causing a GL error when calling
TexSubImage2D), probably due to not resizing the buffer
until we receive the corresponding X event.
Might also be an off-by-one in xwayland, as the window size did
not actually change.
Note: we might want to take the configure_notify path instead,
and keep the GL/clutter size consistent with wayland rather than
X, because in the end that's what matters for events and composition.
src/wayland/meta-wayland.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c
index 1e862c0..acae8d1 100644
--- a/src/wayland/meta-wayland.c
+++ b/src/wayland/meta-wayland.c
@@ -221,6 +221,16 @@ surface_process_damage (MetaWaylandSurface *surface,
{
MetaWindowActor *window_actor =
META_WINDOW_ACTOR (meta_window_get_compositor_private (surface->window));
+ MetaRectangle rect;
+ cairo_rectangle_int_t cairo_rect;
+
+ meta_window_get_input_rect (surface->window, &rect);
+ cairo_rect.x = rect.x;
+ cairo_rect.y = rect.y;
+ cairo_rect.width = rect.width;
+ cairo_rect.height = rect.height;
+
+ cairo_region_intersect_rectangle (region, &cairo_rect);
if (window_actor)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]