forked from Mirrorlandia_minetest/minetest
Inventory: Fix picking up items via drop and pickup doubleclick (#13891)
This commit is contained in:
parent
5e0f14266d
commit
3c41195986
@ -4420,9 +4420,10 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (button == BET_LEFT && (empty || matching)) {
|
} else if (button == BET_LEFT && (empty || matching)) {
|
||||||
// We don't know if the user is left-dragging or just moving
|
// We don't know if the user is left-dragging, just moving
|
||||||
// the item, so assume that they are left-dragging,
|
// the item, or doing a pickup-all via doubleclick, so assume
|
||||||
// and wait for the next event before moving the item
|
// that they are left-dragging, and wait for the next event
|
||||||
|
// before moving the item, or doing a pickup-all
|
||||||
m_left_dragging = true;
|
m_left_dragging = true;
|
||||||
m_client->inhibit_inventory_revert = true;
|
m_client->inhibit_inventory_revert = true;
|
||||||
m_left_drag_stack = list_selected->getItem(m_selected_item->i);
|
m_left_drag_stack = list_selected->getItem(m_selected_item->i);
|
||||||
@ -4572,6 +4573,13 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
if (!s.isValid() || event.MouseInput.Event != EMIE_LMOUSE_DOUBLE_CLICK)
|
if (!s.isValid() || event.MouseInput.Event != EMIE_LMOUSE_DOUBLE_CLICK)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Only do the pickup all thing when putting down an item.
|
||||||
|
// Doubleclick events are triggered after press-down events, so if
|
||||||
|
// m_left_dragging is true here, the user just put down an itemstack,
|
||||||
|
// but didn't yet release the button to make it happen.
|
||||||
|
if (!m_left_dragging)
|
||||||
|
break;
|
||||||
|
|
||||||
// Abort left-dragging
|
// Abort left-dragging
|
||||||
m_left_dragging = false;
|
m_left_dragging = false;
|
||||||
m_client->inhibit_inventory_revert = false;
|
m_client->inhibit_inventory_revert = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user