summaryrefslogtreecommitdiffstats
path: root/runtime/src/user_interface.rs
diff options
context:
space:
mode:
authorLibravatar Cory Forsstrom <cforsstrom18@gmail.com>2023-02-18 19:03:52 -0800
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-06-14 10:43:24 +0200
commit83140d6049c165020c2afc1db303b2556e40488e (patch)
tree29ee52dc86bc6f25179008ffd022ef176b39cebb /runtime/src/user_interface.rs
parent3e6f6eedcb51150b8a599530021cebdc629fddd2 (diff)
downloadiced-83140d6049c165020c2afc1db303b2556e40488e.tar.gz
iced-83140d6049c165020c2afc1db303b2556e40488e.tar.bz2
iced-83140d6049c165020c2afc1db303b2556e40488e.zip
Remove interior mutability
Nested doesn't need to implement Overlay trait, it can be be used mutably in user interface so we don't need interior mutability.
Diffstat (limited to 'runtime/src/user_interface.rs')
-rw-r--r--runtime/src/user_interface.rs37
1 files changed, 19 insertions, 18 deletions
diff --git a/runtime/src/user_interface.rs b/runtime/src/user_interface.rs
index 8ae0363a..1d55970e 100644
--- a/runtime/src/user_interface.rs
+++ b/runtime/src/user_interface.rs
@@ -8,7 +8,7 @@ use crate::core::renderer;
use crate::core::widget;
use crate::core::window;
use crate::core::{Clipboard, Point, Rectangle, Size};
-use crate::core::{Element, Layout, Overlay, Shell};
+use crate::core::{Element, Layout, Shell};
/// A set of interactive graphical elements with a specific [`Layout`].
///
@@ -261,22 +261,23 @@ where
}
}
- let base_cursor = manual_overlay
- .as_ref()
- .filter(|overlay| {
- cursor
- .position()
- .map(|cursor_position| {
- overlay.is_over(
- Layout::new(&layout),
- renderer,
- cursor_position,
- )
- })
- .unwrap_or_default()
+ let base_cursor = if manual_overlay
+ .as_mut()
+ .and_then(|overlay| {
+ cursor.position().map(|cursor_position| {
+ overlay.is_over(
+ Layout::new(&layout),
+ renderer,
+ cursor_position,
+ )
+ })
})
- .map(|_| mouse::Cursor::Unavailable)
- .unwrap_or(cursor);
+ .unwrap_or_default()
+ {
+ mouse::Cursor::Unavailable
+ } else {
+ cursor
+ };
self.overlay = Some(layout);
@@ -434,7 +435,7 @@ where
let viewport = Rectangle::with_size(self.bounds);
- let base_cursor = if let Some(overlay) = self
+ let base_cursor = if let Some(mut overlay) = self
.root
.as_widget_mut()
.overlay(&mut self.state, Layout::new(&self.base), renderer)
@@ -503,7 +504,7 @@ where
root.as_widget_mut()
.overlay(&mut self.state, Layout::new(base), renderer)
.map(overlay::Nested::new)
- .map(|overlay| {
+ .map(|mut overlay| {
let overlay_interaction = overlay.mouse_interaction(
Layout::new(layout),
cursor,