Zhao Yuhang
2023-12-09 651805739be12125295d992c3e6ae00b6bef9fe2
src/core/contexts/win32windowcontext.cpp
@@ -764,10 +764,6 @@
            return false;
        }
        if (systemMenuHandler(hWnd, message, wParam, lParam, result)) {
            return true;
        }
        // Test snap layout
        if (snapLayoutHandler(hWnd, message, wParam, lParam, result)) {
            return true;
@@ -775,6 +771,10 @@
        // Main implementation
        if (customWindowHandler(hWnd, message, wParam, lParam, result)) {
            return true;
        }
        if (systemMenuHandler(hWnd, message, wParam, lParam, result)) {
            return true;
        }
@@ -1187,26 +1187,35 @@
                    // this is also the normal behavior of a native Win32 window (but only when the
                    // window is not maximized/fullscreen/minimized, of course).
                    if (isWindowNoState(hWnd)) {
                        static constexpr const int kBorderSize = 2;
                        static constexpr const auto kBorderSize = quint8{2};
                        bool isTop = (nativeLocalPos.y <= kBorderSize);
                        bool isLeft = nativeLocalPos.x <= kBorderSize;
                        bool isRight = (nativeLocalPos.x >= (clientWidth - kBorderSize));
                        if (isTop || isRight) {
                        if (isTop || isLeft || isRight) {
                            if (dontOverrideCursor) {
                                // The user doesn't want the window to be resized, so we tell
                                // Windows we are in the client area so that the controls beneath
                                // the mouse cursor can still be hovered or clicked.
                                *result = (isTitleBar ? HTCAPTION : HTCLIENT);
                            } else {
                                if (isTop && isRight) {
                                if (isTop) {
                                    if (isLeft) {
                                        *result = HTTOPLEFT;
                                    } else if (isRight) {
                                    *result = HTTOPRIGHT;
                                } else if (isTop) {
                                    } else {
                                    *result = HTTOP;
                                    }
                                } else {
                                    if (isLeft) {
                                        *result = HTLEFT;
                                } else {
                                    *result = HTRIGHT;
                                }
                            }
                        }
                    }
                    }
                    if (*result == HTNOWHERE) {
                        // OK, we are now really inside one of the chrome buttons, tell Windows the
                        // exact role of our button. The Snap Layout feature introduced in Windows