From d09fa63d9c173d3edde81c344e340892bdfa4748 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Sun, 3 Apr 2022 19:38:34 +0200 Subject: [PATCH] Fix `Ui::add_visible` sometimes leaving the `Ui` in a disabled state Closes https://github.com/emilk/egui/issues/1436 --- CHANGELOG.md | 1 + egui/src/ui.rs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f70dbbfc..3e527649 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ NOTE: [`epaint`](epaint/CHANGELOG.md), [`eframe`](eframe/CHANGELOG.md), [`egui_w * Fixed ComboBoxes always being rendered left-aligned ([#1304](https://github.com/emilk/egui/pull/1304)). * Fixed ui code that could lead to a deadlock ([#1380](https://github.com/emilk/egui/pull/1380)). * Text is darker and more readable in bright mode ([#1412](https://github.com/emilk/egui/pull/1412)). +* Fixed `Ui::add_visible` sometimes leaving the `Ui` in a disabled state. ([#1436](https://github.com/emilk/egui/issues/1436)). ### Removed 🔥 * Removed the `single_threaded/multi_threaded` flags - egui is now always thread-safe ([#1390](https://github.com/emilk/egui/pull/1390)). diff --git a/egui/src/ui.rs b/egui/src/ui.rs index cd69d02a..5bd94d3a 100644 --- a/egui/src/ui.rs +++ b/egui/src/ui.rs @@ -1097,9 +1097,14 @@ impl Ui { if self.is_visible() && !visible { // temporary make us invisible: let old_painter = self.painter.clone(); + let old_enabled = self.enabled; + self.set_visible(false); + let response = self.add(widget); + self.painter = old_painter; + self.enabled = old_enabled; response } else { self.add(widget)