mirror of
https://github.com/minetest/minetest.git
synced 2024-07-04 15:05:27 +02:00
Try fix it.
This commit is contained in:
parent
08a45bde13
commit
b005b62f0c
@ -3799,10 +3799,6 @@ void GUIFormSpecMenu::showTooltip(const std::wstring &text,
|
|||||||
|
|
||||||
void GUIFormSpecMenu::updateSelectedItem()
|
void GUIFormSpecMenu::updateSelectedItem()
|
||||||
{
|
{
|
||||||
// Don't update when dragging an item
|
|
||||||
if (m_selected_item && (m_left_dragging && (m_left_drag_stacks.size() > 1)))
|
|
||||||
return;
|
|
||||||
|
|
||||||
verifySelectedItem();
|
verifySelectedItem();
|
||||||
|
|
||||||
// If craftresult is not empty and nothing else is selected,
|
// If craftresult is not empty and nothing else is selected,
|
||||||
@ -4474,7 +4470,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
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);
|
||||||
m_left_drag_amount = m_selected_amount;
|
m_left_drag_amount = m_selected_amount;
|
||||||
m_left_drag_stacks.emplace_back(s, list_s->getItem(s.i));
|
m_left_drag_stacks.emplace_back(s, list_s->getItem(s.i).count);
|
||||||
move_amount = 0;
|
move_amount = 0;
|
||||||
|
|
||||||
} else if (identical) {
|
} else if (identical) {
|
||||||
@ -4535,7 +4531,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
Inventory *inv_to = m_invmgr->getInventory(ds.first.inventoryloc);
|
Inventory *inv_to = m_invmgr->getInventory(ds.first.inventoryloc);
|
||||||
InventoryList *list_to = inv_to->getList(ds.first.listname);
|
InventoryList *list_to = inv_to->getList(ds.first.listname);
|
||||||
ItemStack stack_to = list_to->getItem(ds.first.i);
|
ItemStack stack_to = list_to->getItem(ds.first.i);
|
||||||
u16 amount = stack_to.count - ds.second.count;
|
u16 amount = stack_to.count - ds.second;
|
||||||
|
|
||||||
IMoveAction *a = new IMoveAction();
|
IMoveAction *a = new IMoveAction();
|
||||||
a->count = amount;
|
a->count = amount;
|
||||||
@ -4597,7 +4593,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
m_left_drag_stacks.emplace_back(s, list_s->getItem(s.i));
|
m_left_drag_stacks.emplace_back(s, list_s->getItem(s.i).count);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (m_selected_dragging && matching && !identical) {
|
} else if (m_selected_dragging && matching && !identical) {
|
||||||
@ -4726,7 +4722,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Reset the stack to its original state
|
// Reset the stack to its original state
|
||||||
list_to->changeItem(ds.first.i, ds.second);
|
ItemStack orig_stack = list_to->getItem(ds.first.i);
|
||||||
|
orig_stack.count = ds.second;
|
||||||
|
list_to->changeItem(ds.first.i, orig_stack);
|
||||||
|
|
||||||
// Add the new split to the stack
|
// Add the new split to the stack
|
||||||
ItemStack add_stack = stack_from;
|
ItemStack add_stack = stack_from;
|
||||||
|
@ -363,7 +363,7 @@ class GUIFormSpecMenu : public GUIModalMenu
|
|||||||
|
|
||||||
u16 m_left_drag_amount = 0;
|
u16 m_left_drag_amount = 0;
|
||||||
ItemStack m_left_drag_stack;
|
ItemStack m_left_drag_stack;
|
||||||
std::vector<std::pair<GUIInventoryList::ItemSpec, ItemStack>> m_left_drag_stacks;
|
std::vector<std::pair<GUIInventoryList::ItemSpec, u16>> m_left_drag_stacks;
|
||||||
bool m_left_dragging = false;
|
bool m_left_dragging = false;
|
||||||
|
|
||||||
gui::IGUIStaticText *m_tooltip_element = nullptr;
|
gui::IGUIStaticText *m_tooltip_element = nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user