summaryrefslogtreecommitdiffstats
path: root/glutin
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2022-01-13 15:42:40 +0700
committerLibravatar GitHub <noreply@github.com>2022-01-13 15:42:40 +0700
commit15a13a76b4b0534d08afc0328b90267048e41b9d (patch)
treedd5fa045c9fd3f8f116f230c3e70dcba2d32d011 /glutin
parent1a31aefab401712e44cd613fc1337ab90579d926 (diff)
parentf6c436aec1acb674078bf7e878b9e49f28e947a7 (diff)
downloadiced-15a13a76b4b0534d08afc0328b90267048e41b9d.tar.gz
iced-15a13a76b4b0534d08afc0328b90267048e41b9d.tar.bz2
iced-15a13a76b4b0534d08afc0328b90267048e41b9d.zip
Merge pull request #1193 from iced-rs/responsive-widget
`Responsive` widget
Diffstat (limited to '')
-rw-r--r--glutin/src/application.rs14
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();