From b5322b1043c71d9dab4f44366f8f2065f7017a63 Mon Sep 17 00:00:00 2001 From: Don HO Date: Mon, 18 Nov 2019 01:28:27 +0100 Subject: [PATCH] Revert "Revert 'Fix multi-line tab button stay pushed issue while swiching off.'" The commit fce74dd894a33bc169d0be75b789a0606aae8474 (which reverts 8342da3) does not solve dragging tab problem(#7509), and it made a regression (#3545 is reproduced again). This reverts commit fce74dd894a33bc169d0be75b789a0606aae8474. --- PowerEditor/src/WinControls/TabBar/TabBar.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/PowerEditor/src/WinControls/TabBar/TabBar.cpp b/PowerEditor/src/WinControls/TabBar/TabBar.cpp index 70f8d47c..2a6bf742 100644 --- a/PowerEditor/src/WinControls/TabBar/TabBar.cpp +++ b/PowerEditor/src/WinControls/TabBar/TabBar.cpp @@ -152,7 +152,16 @@ void TabBar::setFont(const TCHAR *fontName, int fontSize) void TabBar::activateAt(int index) const { if (getCurrentTabIndex() != index) + { + // TCM_SETCURFOCUS is busted on WINE/ReactOS for single line (non-TCS_BUTTONS) tabs... + // We need it on Windows for multi-line tabs or multiple tabs can appear pressed. + if (::GetWindowLongPtr(_hSelf, GWL_STYLE) & TCS_BUTTONS) + { + ::SendMessage(_hSelf, TCM_SETCURFOCUS, index, 0); + } + ::SendMessage(_hSelf, TCM_SETCURSEL, index, 0); + } TBHDR nmhdr; nmhdr._hdr.hwndFrom = _hSelf;