diff options
author | crupest <crupest@outlook.com> | 2020-01-03 00:43:46 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-01-03 00:43:46 +0800 |
commit | 8fc4e33b97372d93b1bcc4b598e5c8e2f15652d8 (patch) | |
tree | 8508a9e9f54f9ff871f53f5628894cefec440d05 /src/ui/render | |
parent | d5ff69096a3f56052b30d8ef827845473d4aa5ea (diff) | |
download | cru-8fc4e33b97372d93b1bcc4b598e5c8e2f15652d8.tar.gz cru-8fc4e33b97372d93b1bcc4b598e5c8e2f15652d8.tar.bz2 cru-8fc4e33b97372d93b1bcc4b598e5c8e2f15652d8.zip |
...
Diffstat (limited to 'src/ui/render')
-rw-r--r-- | src/ui/render/window_render_object.cpp | 9 |
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}); } |