aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rootston/output.c3
-rw-r--r--types/wlr_surface.c8
2 files changed, 6 insertions, 5 deletions
diff --git a/rootston/output.c b/rootston/output.c
index 4207f0d0..6a6b25c4 100644
--- a/rootston/output.c
+++ b/rootston/output.c
@@ -696,8 +696,7 @@ static void damage_from_surface(struct wlr_surface *surface, int sx, int sy,
int center_x = box.x + box.width/2;
int center_y = box.y + box.height/2;
- enum wl_output_transform transform =
- wlr_output_transform_invert(surface->current.transform);
+ enum wl_output_transform transform = surface->current.transform;
pixman_region32_t damage;
pixman_region32_init(&damage);
diff --git a/types/wlr_surface.c b/types/wlr_surface.c
index ab1dfc2d..790db675 100644
--- a/types/wlr_surface.c
+++ b/types/wlr_surface.c
@@ -7,6 +7,7 @@
#include <wlr/types/wlr_matrix.h>
#include <wlr/types/wlr_region.h>
#include <wlr/types/wlr_surface.h>
+#include <wlr/types/wlr_output.h>
#include <wlr/util/log.h>
#include <wlr/util/region.h>
#include "util/signal.h"
@@ -198,7 +199,8 @@ static void surface_update_damage(pixman_region32_t *buffer_damage,
pixman_region32_init(&surface_damage);
pixman_region32_copy(&surface_damage, &current->surface_damage);
wlr_region_transform(&surface_damage, &surface_damage,
- current->transform, current->buffer_width, current->buffer_height);
+ wlr_output_transform_invert(current->transform),
+ current->width, current->height);
wlr_region_scale(&surface_damage, &surface_damage, current->scale);
pixman_region32_union(buffer_damage, buffer_damage, &surface_damage);
pixman_region32_fini(&surface_damage);
@@ -307,8 +309,8 @@ static void surface_apply_damage(struct wlr_surface *surface) {
pixman_region32_init(&surface_damage);
pixman_region32_copy(&surface_damage, &surface->current.surface_damage);
wlr_region_transform(&surface_damage, &surface_damage,
- surface->current.transform,
- surface->current.buffer_width, surface->current.buffer_height);
+ wlr_output_transform_invert(surface->current.transform),
+ surface->current.width, surface->current.height);
wlr_region_scale(&surface_damage, &surface_damage,
surface->current.scale);
pixman_region32_union(&damage, &damage, &surface_damage);