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 |   42 ++++++++++++------------------------------
 1 files changed, 12 insertions(+), 30 deletions(-)

diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp
index 1201277..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
@@ -869,7 +851,7 @@
                 const WindowPart currentWindowPart = lastHitTestResult;
                 if (message == WM_NCMOUSEMOVE) {
                     if (currentWindowPart != WindowPart::ChromeButton) {
-                        std::ignore = m_delegate->resetQtGrabbedControl();
+                        m_delegate->resetQtGrabbedControl();
                         if (mouseLeaveBlocked) {
                             emulateClientAreaMessage(hWnd, message, wParam, lParam,
                                                      WM_NCMOUSELEAVE);
@@ -931,7 +913,7 @@
                         // window from client area, which means we will get previous window part as
                         // HTCLIENT if the mouse leaves window from client area and enters window
                         // from non-client area, but it has no bad effect.
-                        std::ignore = m_delegate->resetQtGrabbedControl();
+                        m_delegate->resetQtGrabbedControl();
                     }
                 }
                 break;
@@ -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