From e60a4dca3ea504b6dd167dde752bf7931800aabf Mon Sep 17 00:00:00 2001 From: Eric Robinson <68359262+kphoenix137@users.noreply.github.com> Date: Fri, 25 Aug 2023 19:04:13 -0400 Subject: [PATCH] Close Towner window when clicking outside (#6504) --- Source/stores.cpp | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Source/stores.cpp b/Source/stores.cpp index bae307456..015e7f3aa 100644 --- a/Source/stores.cpp +++ b/Source/stores.cpp @@ -2692,19 +2692,26 @@ void StoreEnter() void CheckStoreBtn() { const Point uiPosition = GetUIRectangle().position; + const Rectangle windowRect { { uiPosition.x + 344, uiPosition.y + PaddingTop - 7 }, { 271, 303 } }; + const Rectangle windowRectFull { { uiPosition.x + 24, uiPosition.y + PaddingTop - 7 }, { 591, 303 } }; + + if (!stextsize) { + if (!windowRect.contains(MousePosition)) { + while (stextflag != TalkID::None) + StoreESC(); + } + } else { + if (!windowRectFull.contains(MousePosition)) { + while (stextflag != TalkID::None) + StoreESC(); + } + } + if (qtextflag) { qtextflag = false; if (leveltype == DTYPE_TOWN) stream_stop(); - } else if (stextsel != -1 && MousePosition.y >= (PaddingTop + uiPosition.y) && MousePosition.y <= (320 + uiPosition.y)) { - if (!stextsize) { - if (MousePosition.x < 344 + uiPosition.x || MousePosition.x > 616 + uiPosition.x) - return; - } else { - if (MousePosition.x < 24 + uiPosition.x || MousePosition.x > 616 + uiPosition.x) - return; - } - + } else if (stextsel != -1) { const int relativeY = MousePosition.y - (uiPosition.y + PaddingTop); if (stextscrl && MousePosition.x > 600 + uiPosition.x) {