From 5459ab29b7d9345ec1848c7b28db63404c43ff74 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Sun, 6 Feb 2022 00:16:59 +0100 Subject: [PATCH] Fix: allow calling set_pixels_per_point before first frame Closes https://github.com/emilk/egui/issues/1153 --- CHANGELOG.md | 1 + egui/src/context.rs | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cf3f77a..81e84aad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,7 @@ NOTE: [`epaint`](epaint/CHANGELOG.md), [`eframe`](eframe/CHANGELOG.md), [`egui_w * Context menus now respects the theme ([#1043](https://github.com/emilk/egui/pull/1043)) * Plot `Orientation` was not public, although fields using this type were ([#1130](https://github.com/emilk/egui/pull/1130)) * Fixed `enable_drag` for Windows ([#1108](https://github.com/emilk/egui/pull/1108)). +* Calling `Context::set_pixels_per_point` before the first frame will now work. ### Contributors 🙏 * [AlexxxRu](https://github.com/alexxxru): [#1108](https://github.com/emilk/egui/pull/1108). diff --git a/egui/src/context.rs b/egui/src/context.rs index 8b385069..3695b91c 100644 --- a/egui/src/context.rs +++ b/egui/src/context.rs @@ -54,12 +54,12 @@ impl ContextImpl { fn begin_frame_mut(&mut self, new_raw_input: RawInput) { self.memory.begin_frame(&self.input, &new_raw_input); - let mut input = std::mem::take(&mut self.input); + self.input = std::mem::take(&mut self.input).begin_frame(new_raw_input); + if let Some(new_pixels_per_point) = self.memory.new_pixels_per_point.take() { - input.pixels_per_point = new_pixels_per_point; + self.input.pixels_per_point = new_pixels_per_point; } - self.input = input.begin_frame(new_raw_input); self.frame_state.begin_frame(&self.input); self.update_fonts_mut();