From 3d50f3133ddbbd7136dca8173cf9164b78121823 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <zhaoyuhang@rankyee.com> Date: ćšć, 07 12æ 2023 17:45:20 +0800 Subject: [PATCH] reorder code --- src/core/contexts/win32windowcontext.cpp | 38 ++++++++++---------------------------- 1 files changed, 10 insertions(+), 28 deletions(-) diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp index b89496c..44bd408 100644 --- a/src/core/contexts/win32windowcontext.cpp +++ b/src/core/contexts/win32windowcontext.cpp @@ -295,10 +295,6 @@ } static inline bool isFullScreen(HWND hwnd) { - Q_ASSERT(hwnd); - if (!hwnd) { - return false; - } RECT windowRect{}; ::GetWindowRect(hwnd, &windowRect); // Compare to the full area of the screen, not the work area. @@ -306,10 +302,6 @@ } static inline bool isWindowNoState(HWND hwnd) { - Q_ASSERT(hwnd); - if (!hwnd) { - return false; - } #if 0 WINDOWPLACEMENT wp{}; wp.length = sizeof(wp); @@ -358,26 +350,12 @@ w = (ratio - qreal(1)); } m = (dt - (period * w)); - //Q_ASSERT((m > qreal(0)) || qFuzzyIsNull(m)); - //Q_ASSERT(m < period); if ((m < qreal(0)) || qFuzzyCompare(m, period) || (m > period)) { return; } const qreal m_ms = (qreal(1000) * m / qreal(freq.QuadPart)); ::Sleep(static_cast<DWORD>(std::round(m_ms))); apis.ptimeEndPeriod(ms_granularity); - } - - static inline QPoint fromNativeLocalPosition(const QWindow *window, const QPoint &point) { - Q_ASSERT(window); - if (!window) { - return point; - } -#if 1 - return QHighDpi::fromNativeLocalPosition(point, window); -#else - return QPointF(QPointF(point) / window->devicePixelRatio()).toPoint(); -#endif } static inline Win32WindowContext::WindowPart getHitWindowPart(int hitTestResult) { @@ -482,11 +460,17 @@ static Win32WindowContext *lastMessageContext; static inline void install() { + if (instance) { + return; + } instance = new WindowsNativeEventFilter(); installNativeEventFilter(instance); } static inline void uninstall() { + if (!instance) { + return; + } removeNativeEventFilter(instance); delete instance; instance = nullptr; @@ -616,9 +600,7 @@ ::SetWindowLongPtrW(hWnd, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(QWKHookedWndProc)); // Install global native event filter - if (!WindowsNativeEventFilter::instance) { - WindowsNativeEventFilter::install(); - } + WindowsNativeEventFilter::install(); // Cache window ID windowId = winId; @@ -821,7 +803,7 @@ POINT screenPoint{GET_X_LPARAM(dwScreenPos), GET_Y_LPARAM(dwScreenPos)}; ::ScreenToClient(hWnd, &screenPoint); QPoint qtScenePos = - fromNativeLocalPosition(m_windowHandle, {screenPoint.x, screenPoint.y}); + QHighDpi::fromNativeLocalPosition(QPoint{screenPoint.x, screenPoint.y}, m_windowHandle); auto dummy = CoreWindowAgent::Unknown; if (isInSystemButtons(qtScenePos, &dummy)) { // We must record whether the last WM_MOUSELEAVE was filtered, because if @@ -1053,8 +1035,8 @@ auto clientWidth = RECT_WIDTH(clientRect); auto clientHeight = RECT_HEIGHT(clientRect); - QPoint qtScenePos = fromNativeLocalPosition( - m_windowHandle, QPoint(nativeLocalPos.x, nativeLocalPos.y)); + QPoint qtScenePos = QHighDpi::fromNativeLocalPosition( + QPoint(nativeLocalPos.x, nativeLocalPos.y), m_windowHandle); bool isFixedSize = m_delegate->isHostSizeFixed(m_host); bool isTitleBar = isInTitleBarDraggableArea(qtScenePos); -- Gitblit v1.9.1