Skip to content

Commit

Permalink
Invalidate widget tree in Responsive after a window::Event::Resized
Browse files Browse the repository at this point in the history
This is a pessimistic approach! Ideally, we should be able to recreate
only the contents of the `Responsive` widget in `Widget::layout`, but
given `view` is impure we have to trigger a brand new `view` call.

The persistent widget tree should make this easier.
  • Loading branch information
hecrj committed Jan 20, 2022
1 parent a3744ec commit 0e475b0
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion lazy/src/responsive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use iced_native::layout::{self, Layout};
use iced_native::mouse;
use iced_native::overlay;
use iced_native::renderer;
use iced_native::window;
use iced_native::{
Clipboard, Element, Hasher, Length, Point, Rectangle, Shell, Size, Widget,
};
Expand Down Expand Up @@ -100,7 +101,10 @@ where
) -> event::Status {
let mut internal = self.0.borrow_mut();

if internal.state.last_size != Some(internal.state.last_layout.size()) {
if matches!(event, Event::Window(window::Event::Resized { .. }))
|| internal.state.last_size
!= Some(internal.state.last_layout.size())
{
shell.invalidate_widgets();
}

Expand Down

0 comments on commit 0e475b0

Please sign in to comment.