From 6ab4611a6eec9c4bb4ca1ff1bb580bb7edf49add Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 11 Jan 2022 13:47:43 +0700 Subject: Invalidate widget tree from `Responsive` widget ... by introducing a new `invalidate_widgets` method to `Shell` --- glutin/src/application.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'glutin') 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( 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( 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( 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(); -- cgit