Skip to content

Commit 71664b5

Browse files
committed
fix: re-clamp camera offset in widget allocation, fixes #1720
1 parent 2556405 commit 71664b5

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

crates/rnote-ui/src/canvas/canvaslayout.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,20 @@ mod imp {
6262
let canvas = widget.downcast_ref::<RnCanvas>().unwrap();
6363

6464
let new_size = na::vector![width as f64, height as f64];
65-
let _ = canvas.engine_mut().camera_set_size(new_size);
65+
let offset = canvas.engine_ref().camera.offset();
6666

6767
// Configure adjustments using new size
6868
let (surface_mins, surface_maxs) = canvas.engine_ref().camera_surface_mins_maxs();
69-
let offset = canvas.engine_ref().camera.offset();
7069

7170
let adjustment_maxs = RnCanvas::surface_to_adjustment(surface_maxs, surface_mins);
7271
let adjustment_value = RnCanvas::surface_to_adjustment(offset, surface_mins);
7372

7473
canvas.configure_adjustments(new_size, adjustment_maxs, adjustment_value);
7574

75+
// Update the camera size and re-clamp the offset to the new size
76+
let _ = canvas.engine_mut().camera_set_size(new_size);
77+
let _ = canvas.engine_mut().camera_set_offset(offset);
78+
7679
// Calculate new viewport from the updated camera state
7780
let old_viewport = self.old_viewport.get();
7881
let new_viewport = canvas.engine_ref().camera.viewport();

0 commit comments

Comments
 (0)