1
0
Fork 0
forked from wry/wry

surface: process offset request without a buffer change

This commit is contained in:
Julian Orth 2024-04-02 13:22:21 +02:00
parent adf6d2ae2b
commit 9cddeb964d
9 changed files with 98 additions and 11 deletions

View file

@ -910,14 +910,6 @@ impl WlSurface {
release,
};
self.buffer.set(Some(Rc::new(surface_buffer)));
self.buf_x.fetch_add(dx);
self.buf_y.fetch_add(dy);
if (dx, dy) != (0, 0) {
self.need_extents_update.set(true);
for (_, cursor) in &self.cursors {
cursor.dec_hotspot(dx, dy);
}
}
} else {
self.buf_x.set(0);
self.buf_y.set(0);
@ -926,6 +918,14 @@ impl WlSurface {
}
}
}
if self.buffer.is_some() && (dx, dy) != (0, 0) {
self.buf_x.fetch_add(dx);
self.buf_y.fetch_add(dy);
self.need_extents_update.set(true);
for (_, cursor) in &self.cursors {
cursor.dec_hotspot(dx, dy);
}
}
let transform_changed = viewport_changed || scale_changed || buffer_transform_changed;
if buffer_changed || transform_changed {
let mut buffer_points = self.buffer_points.borrow_mut();