diff --git a/crates/egui/src/containers/scene.rs b/crates/egui/src/containers/scene.rs index 6a9fc104..fff4136f 100644 --- a/crates/egui/src/containers/scene.rs +++ b/crates/egui/src/containers/scene.rs @@ -119,7 +119,9 @@ impl Scene { if !scene_rect_was_good { // Auto-reset if the transformation goes bad somehow (or started bad). - *scene_rect = inner_rect; + // Recalculates transform based on inner_rect, resulting in a rect that's the full size of outer_rect but centered on inner_rect. + let to_global = fit_to_rect_in_scene(outer_rect, inner_rect, self.zoom_range); + *scene_rect = to_global.inverse() * outer_rect; } ret diff --git a/crates/egui_demo_lib/tests/snapshots/demos/Scene.png b/crates/egui_demo_lib/tests/snapshots/demos/Scene.png index 0f67cc6a..a2c2e7ba 100644 --- a/crates/egui_demo_lib/tests/snapshots/demos/Scene.png +++ b/crates/egui_demo_lib/tests/snapshots/demos/Scene.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:16ee44708adbe6e0ac3ce58617a5d63fb3bde357c07611815376518950e056b0 -size 34763 +oid sha256:b4bf35ad4ce01122de5bc0830018044fd70f116938293fbeb72a2278de0bbb22 +size 35068