mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-12 02:28:11 +02:00
Merge pull request #3927 from IvanSavenko/fix_doubleclick
[1.5.1] Fixed mouse double-click handling in some widgets
This commit is contained in:
commit
a341abbd31
@ -358,6 +358,17 @@ void SelectionTab::clickDouble(const Point & cursorPosition)
|
||||
if(itemIndex >= curItems.size())
|
||||
return;
|
||||
|
||||
auto clickedItem = curItems[itemIndex];
|
||||
auto selectedItem = getSelectedMapInfo();
|
||||
|
||||
if (clickedItem != selectedItem)
|
||||
{
|
||||
// double-click BUT player hit different item than he had selected
|
||||
// ignore - clickReleased would still trigger and update selection.
|
||||
// After which another (3rd) click if it happens would still register as double-click
|
||||
return;
|
||||
}
|
||||
|
||||
if(itemIndex >= 0 && curItems[itemIndex]->isFolder)
|
||||
{
|
||||
select(position);
|
||||
|
@ -335,8 +335,15 @@ void CSelectableComponent::clickPressed(const Point & cursorPosition)
|
||||
|
||||
void CSelectableComponent::clickDouble(const Point & cursorPosition)
|
||||
{
|
||||
if(onChoose)
|
||||
onChoose();
|
||||
if (!selected)
|
||||
{
|
||||
clickPressed(cursorPosition);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (onChoose)
|
||||
onChoose();
|
||||
}
|
||||
}
|
||||
|
||||
void CSelectableComponent::init()
|
||||
|
@ -616,6 +616,9 @@ void CTavernWindow::HeroPortrait::clickDouble(const Point & cursorPosition)
|
||||
|
||||
void CTavernWindow::HeroPortrait::showPopupWindow(const Point & cursorPosition)
|
||||
{
|
||||
// h3 behavior - right-click also selects hero
|
||||
clickPressed(cursorPosition);
|
||||
|
||||
if(h)
|
||||
GH.windows().createAndPushWindow<CRClickPopupInt>(std::make_shared<CHeroWindow>(h));
|
||||
}
|
||||
@ -1712,6 +1715,12 @@ void CObjectListWindow::CItem::clickPressed(const Point & cursorPosition)
|
||||
|
||||
void CObjectListWindow::CItem::clickDouble(const Point & cursorPosition)
|
||||
{
|
||||
if (parent->selected != index)
|
||||
{
|
||||
clickPressed(cursorPosition);
|
||||
return;
|
||||
}
|
||||
|
||||
parent->elementSelected();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user