diff options
| author | 2022-01-11 13:47:43 +0700 | |
|---|---|---|
| committer | 2022-01-11 13:47:43 +0700 | |
| commit | 6ab4611a6eec9c4bb4ca1ff1bb580bb7edf49add (patch) | |
| tree | c96d3eb77ffe99a580ed13efecc50d2857f1b8f0 /glutin/src | |
| parent | 90c20ac46b72b6d8f735f7efd283b9d1dfecfb9d (diff) | |
| download | iced-6ab4611a6eec9c4bb4ca1ff1bb580bb7edf49add.tar.gz iced-6ab4611a6eec9c4bb4ca1ff1bb580bb7edf49add.tar.bz2 iced-6ab4611a6eec9c4bb4ca1ff1bb580bb7edf49add.zip  | |
Invalidate widget tree from `Responsive` widget
... by introducing a new `invalidate_widgets` method to `Shell`
Diffstat (limited to '')
| -rw-r--r-- | glutin/src/application.rs | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/glutin/src/application.rs b/glutin/src/application.rs index a1165de3..437c17ee 100644 --- a/glutin/src/application.rs +++ b/glutin/src/application.rs @@ -9,7 +9,8 @@ use iced_winit::application;  use iced_winit::conversion;  use iced_winit::futures;  use iced_winit::futures::channel::mpsc; -use iced_winit::{Cache, Clipboard, Debug, Proxy, Settings}; +use iced_winit::user_interface; +use iced_winit::{Clipboard, Debug, Proxy, Settings};  use glutin::window::Window;  use std::mem::ManuallyDrop; @@ -177,7 +178,7 @@ async fn run_instance<A, E, C>(      let mut user_interface =          ManuallyDrop::new(application::build_user_interface(              &mut application, -            Cache::default(), +            user_interface::Cache::default(),              &mut renderer,              state.logical_size(),              &mut debug, @@ -198,7 +199,7 @@ async fn run_instance<A, E, C>(                  debug.event_processing_started(); -                let statuses = user_interface.update( +                let (interface_state, statuses) = user_interface.update(                      &events,                      state.cursor_position(),                      &mut renderer, @@ -212,7 +213,12 @@ async fn run_instance<A, E, C>(                      runtime.broadcast(event);                  } -                if !messages.is_empty() { +                if !messages.is_empty() +                    || matches!( +                        interface_state, +                        user_interface::State::Outdated +                    ) +                {                      let cache =                          ManuallyDrop::into_inner(user_interface).into_cache();  | 
