From 44f24f8ece48fd4acc2e8d5f5a052cbc1981768c Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 16 Oct 2021 23:00:33 +0800 Subject: ... --- src/osx/gui/Window.mm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/osx/gui') diff --git a/src/osx/gui/Window.mm b/src/osx/gui/Window.mm index dfe94d43..ce28e8a2 100644 --- a/src/osx/gui/Window.mm +++ b/src/osx/gui/Window.mm @@ -117,8 +117,8 @@ void OsxWindowPrivate::OnWindowWillClose() { graphics_context_ = nil; } -void OsxWindowPrivate::OnWindowDidExpose() { [window_ update]; } -void OsxWindowPrivate::OnWindowDidUpdate() { osx_window_->paint_event_.Raise(nullptr); } +void OsxWindowPrivate::OnWindowDidExpose() { osx_window_->RequestRepaint(); } +void OsxWindowPrivate::OnWindowDidUpdate() {} void OsxWindowPrivate::OnWindowDidResize() { osx_window_->resize_event_.Raise(osx_window_->GetClientSize()); @@ -126,6 +126,8 @@ void OsxWindowPrivate::OnWindowDidResize() { styleMask:CalcWindowStyleMask(frame_)]; content_rect_ = cru::platform::graphics::osx::quartz::Convert(rect); + + osx_window_->RequestRepaint(); } void OsxWindowPrivate::OnMouseEnterLeave(MouseEnterLeaveType type) { @@ -248,7 +250,9 @@ void OsxWindow::SetWindowRect(const Rect& rect) { } } -void OsxWindow::RequestRepaint() { [p_->window_ update]; } +void OsxWindow::RequestRepaint() { + GetUiApplication()->SetImmediate([this] { paint_event_.Raise(nullptr); }); +} std::unique_ptr OsxWindow::BeginPaint() { CGContextRef cg_context = [p_->graphics_context_ CGContext]; -- cgit v1.2.3