From 2a1e707b1cf530b00a5c0f3766466f10bd617619 Mon Sep 17 00:00:00 2001 From: Zhao Yuhang <2546789017@qq.com> Date: 周三, 13 12月 2023 20:37:56 +0800 Subject: [PATCH] add WIP mac imp --- src/core/contexts/win32windowcontext.cpp | 47 ++++++----------------------------------------- 1 files changed, 6 insertions(+), 41 deletions(-) diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp index a706835..3f0ac32 100644 --- a/src/core/contexts/win32windowcontext.cpp +++ b/src/core/contexts/win32windowcontext.cpp @@ -84,7 +84,7 @@ // ### FIXME: Tell the user to call in the documentation, instead of automatically // calling it directly. // ### FIXME FIXME FIXME - static struct QWK_Hook { + static const struct QWK_Hook { QWK_Hook() { qApp->setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); } @@ -1937,16 +1937,16 @@ case WM_THEMECHANGED: case WM_SYSCOLORCHANGE: { - QEvent e(QEvent::UpdateRequest); + QEvent e(QEvent::UpdateLater); dispatch(&e); break; } case WM_DWMCOLORIZATIONCOLORCHANGED: { const QColor color = QColor::fromRgba(wParam); - const auto blendWithOpacity = *reinterpret_cast<LPBOOL>(lParam); + const auto blendedWithOpacity = *reinterpret_cast<LPBOOL>(lParam); - QEvent e(QEvent::UpdateRequest); + QEvent e(QEvent::UpdateLater); dispatch(&e); break; } @@ -1955,51 +1955,16 @@ if (!wParam && lParam && std::wcscmp(reinterpret_cast<LPCWSTR>(lParam), L"ImmersiveColorSet") == 0) { const QColor color = getAccentColor(); - } - QEvent e(QEvent::UpdateRequest); - dispatch(&e); - break; - } - - case WM_SIZE: { - const bool max = wParam == SIZE_MAXIMIZED; - const bool min = wParam == SIZE_MINIMIZED; - const bool full = isFullScreen(hWnd); - - Qt::WindowStates states{}; - if (max) { - states |= Qt::WindowMaximized; - } - if (min) { - states |= Qt::WindowMinimized; - } - if (full) { - states |= Qt::WindowFullScreen; - } - - QTimer::singleShot(0, this, [this, states] { - QWindowStateChangeEvent e(states); + QEvent e(QEvent::UpdateLater); dispatch(&e); - }); + } break; } - case WM_ACTIVATE: { - const auto state = LOWORD(wParam); - const bool active = state == WA_ACTIVE || state == WA_CLICKACTIVE; - Q_UNUSED(state) - - QTimer::singleShot(0, this, [this, active] { - QEvent e(active ? QEvent::WindowActivate : QEvent::WindowDeactivate); - dispatch(&e); - }); - break; - } default: break; } return false; } - } -- Gitblit v1.9.1