mirror of
https://github.com/danbulant/cushy
synced 2026-06-19 22:41:10 +00:00
Delaying resize until after render
This commit is contained in:
parent
1aa7563bd2
commit
8561b6cf5e
1 changed files with 21 additions and 19 deletions
|
|
@ -1912,6 +1912,27 @@ where
|
|||
let render_size = actual_size.min(window_size);
|
||||
layout_context.invalidate_when_changed(&self.inner_size);
|
||||
layout_context.invalidate_when_changed(&self.resize_to_fit);
|
||||
|
||||
self.root.set_layout(Rect::from(render_size.into_signed()));
|
||||
|
||||
if self.initial_frame {
|
||||
self.initial_frame = false;
|
||||
self.root
|
||||
.lock()
|
||||
.as_widget()
|
||||
.mounted(&mut layout_context.as_event_context());
|
||||
layout_context.focus();
|
||||
layout_context.as_event_context().apply_pending_state();
|
||||
}
|
||||
|
||||
if render_size.width < window_size.width || render_size.height < window_size.height {
|
||||
layout_context
|
||||
.clipped_to(Rect::from(render_size.into_signed()))
|
||||
.redraw();
|
||||
} else {
|
||||
layout_context.redraw();
|
||||
}
|
||||
|
||||
let new_size = if let Some(new_size) = self.inner_size.updated() {
|
||||
layout_context.request_inner_size(*new_size)
|
||||
} else if actual_size != window_size && !resizable {
|
||||
|
|
@ -1934,25 +1955,6 @@ where
|
|||
self.outer_size.set(layout_context.window().outer_size());
|
||||
self.root.invalidate();
|
||||
}
|
||||
self.root.set_layout(Rect::from(render_size.into_signed()));
|
||||
|
||||
if self.initial_frame {
|
||||
self.initial_frame = false;
|
||||
self.root
|
||||
.lock()
|
||||
.as_widget()
|
||||
.mounted(&mut layout_context.as_event_context());
|
||||
layout_context.focus();
|
||||
layout_context.as_event_context().apply_pending_state();
|
||||
}
|
||||
|
||||
if render_size.width < window_size.width || render_size.height < window_size.height {
|
||||
layout_context
|
||||
.clipped_to(Rect::from(render_size.into_signed()))
|
||||
.redraw();
|
||||
} else {
|
||||
layout_context.redraw();
|
||||
}
|
||||
}
|
||||
|
||||
fn close_requested<W>(&mut self, window: W, kludgine: &mut Kludgine) -> bool
|
||||
|
|
|
|||
Loading…
Reference in a new issue