aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/render')
-rw-r--r--src/ui/render/window_render_object.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ui/render/window_render_object.cpp b/src/ui/render/window_render_object.cpp
index 1001be87..43269d09 100644
--- a/src/ui/render/window_render_object.cpp
+++ b/src/ui/render/window_render_object.cpp
@@ -21,7 +21,9 @@ class WindowRenderHost : public IRenderHost,
void InvalidateLayout() override;
void InvalidatePaint() override {
- render_object_->GetWindow()->GetNativeWindow()->RequestRepaint();
+ if (const auto native_window =
+ render_object_->GetWindow()->ResolveNativeWindow())
+ native_window->RequestRepaint();
}
IEvent<AfterLayoutEventArgs>* AfterLayoutEvent() override {
@@ -61,7 +63,10 @@ WindowRenderObject::WindowRenderObject(Window* window)
}
void WindowRenderObject::Relayout() {
- const auto client_size = window_->GetNativeWindow()->GetClientSize();
+ const auto native_window = window_->ResolveNativeWindow();
+ const auto client_size = native_window
+ ? native_window->GetClientSize()
+ : Size{100, 100}; // a reasonable assumed size
Measure(client_size);
Layout(Rect{Point{}, client_size});
}