Fix rapid swapping between two tabs during tab drag and drop.
Closes 3328, Fixes #3017, fixes #2771
This commit is contained in:
parent
a00a913752
commit
6b0977b0b8
@ -1194,13 +1194,24 @@ void TabBarPlus::exchangeItemData(POINT point)
|
||||
|
||||
if (nTab != _nTabDragged)
|
||||
{
|
||||
if (_previousTabSwapped == nTab)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
exchangeTabItemData(_nTabDragged, nTab);
|
||||
_previousTabSwapped = _nTabDragged;
|
||||
_nTabDragged = nTab;
|
||||
}
|
||||
else
|
||||
{
|
||||
_previousTabSwapped = -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//::SetCursor(::LoadCursor(_hInst, MAKEINTRESOURCE(IDC_DRAG_TAB)));
|
||||
_previousTabSwapped = -1;
|
||||
_isDraggingInside = false;
|
||||
}
|
||||
|
||||
|
@ -229,6 +229,7 @@ protected:
|
||||
bool _isDraggingInside = false;
|
||||
int _nSrcTab = -1;
|
||||
int _nTabDragged = -1;
|
||||
int _previousTabSwapped = -1;
|
||||
POINT _draggingPoint; // coordinate of Screen
|
||||
WNDPROC _tabBarDefaultProc = nullptr;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user