diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-24 16:03:35 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-24 16:03:35 +0800 |
| commit | eb280d0ed73c7b3a410c94f4eb995b23cccb9e6a (patch) | |
| tree | 38ae5316b8f8847d3d1d18607d09d671779883a5 /src/ui/controls/ControlHost.cpp | |
| parent | cfe37d586d2513e0bfe9e4754a6c08c86773fb0e (diff) | |
| download | cru-eb280d0ed73c7b3a410c94f4eb995b23cccb9e6a.tar.gz cru-eb280d0ed73c7b3a410c94f4eb995b23cccb9e6a.tar.bz2 cru-eb280d0ed73c7b3a410c94f4eb995b23cccb9e6a.zip | |
Add cache logic for layout.
Diffstat (limited to 'src/ui/controls/ControlHost.cpp')
| -rw-r--r-- | src/ui/controls/ControlHost.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/ui/controls/ControlHost.cpp b/src/ui/controls/ControlHost.cpp index caa907da..7c934b7b 100644 --- a/src/ui/controls/ControlHost.cpp +++ b/src/ui/controls/ControlHost.cpp @@ -124,9 +124,9 @@ ControlHost::CreateNativeWindow() { return std::unique_ptr<platform::gui::INativeWindow>(native_window); } -void ControlHost::InvalidatePaint() { native_window_->RequestRepaint(); } +void ControlHost::ScheduleRepaint() { native_window_->RequestRepaint(); } -void ControlHost::InvalidateLayout() { +void ControlHost::ScheduleRelayout() { relayout_schedule_canceler_.Reset( platform::gui::IUiApplication::GetInstance()->SetImmediate( [this] { Relayout(); })); @@ -139,7 +139,7 @@ bool ControlHost::IsLayoutPreferToFillWindow() const { void ControlHost::SetLayoutPreferToFillWindow(bool value) { if (value == layout_prefer_to_fill_window_) return; layout_prefer_to_fill_window_ = value; - InvalidateLayout(); + ScheduleRelayout(); } void ControlHost::Repaint() { @@ -172,7 +172,7 @@ void ControlHost::RelayoutWithSize(const Size& available_size, AfterLayoutEvent_.Raise(nullptr); - InvalidatePaint(); + ScheduleRepaint(); } Control* ControlHost::GetFocusControl() { return focus_control_; } @@ -250,7 +250,7 @@ void ControlHost::OnNativeResize(platform::gui::INativeWindow* window, CRU_UNUSED(window) CRU_UNUSED(size) - InvalidateLayout(); + ScheduleRelayout(); } void ControlHost::OnNativeFocus(platform::gui::INativeWindow* window, |
