aboutsummaryrefslogtreecommitdiff
path: root/src/gui/guiFormSpecMenu.cpp
diff options
context:
space:
mode:
authorJean-Patrick Guerrero <kilbith@users.noreply.github.com>2022-10-24 13:58:56 +0200
committerGitHub <noreply@github.com>2022-10-24 13:58:56 +0200
commit16266397ed3db6503487574a4c1f7fa0e5a7c4ce (patch)
tree158b9770bc2efdabe68fbb5406703eb9f2626cf9 /src/gui/guiFormSpecMenu.cpp
parent02c293ec63c55b92be3257aac08308ee4fffbe1f (diff)
downloadminetest-16266397ed3db6503487574a4c1f7fa0e5a7c4ce.tar.xz
GUIInventoryList: Keep item size while moving (#12896)
Diffstat (limited to 'src/gui/guiFormSpecMenu.cpp')
-rw-r--r--src/gui/guiFormSpecMenu.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp
index b85ee57c4..18bcef292 100644
--- a/src/gui/guiFormSpecMenu.cpp
+++ b/src/gui/guiFormSpecMenu.cpp
@@ -3515,10 +3515,10 @@ GUIInventoryList::ItemSpec GUIFormSpecMenu::getItemAtPos(v2s32 p) const
s32 item_index = e->getItemIndexAtPos(p);
if (item_index != -1)
return GUIInventoryList::ItemSpec(e->getInventoryloc(), e->getListname(),
- item_index);
+ item_index, e->getSlotSize());
}
- return GUIInventoryList::ItemSpec(InventoryLocation(), "", -1);
+ return GUIInventoryList::ItemSpec(InventoryLocation(), "", -1, {0,0});
}
void GUIFormSpecMenu::drawSelectedItem()
@@ -3540,7 +3540,8 @@ void GUIFormSpecMenu::drawSelectedItem()
ItemStack stack = list->getItem(m_selected_item->i);
stack.count = m_selected_amount;
- core::rect<s32> imgrect(0,0,imgsize.X,imgsize.Y);
+ v2s32 slotsize = m_selected_item->slotsize;
+ core::rect<s32> imgrect(0, 0, slotsize.X, slotsize.Y);
core::rect<s32> rect = imgrect + (m_pointer - imgrect.getCenter());
rect.constrainTo(driver->getViewPort());
drawItemStack(driver, m_font, stack, rect, NULL, m_client, IT_ROT_DRAGGED);
@@ -3791,6 +3792,7 @@ void GUIFormSpecMenu::updateSelectedItem()
m_selected_item->inventoryloc = e->getInventoryloc();
m_selected_item->listname = "craftresult";
m_selected_item->i = 0;
+ m_selected_item->slotsize = e->getSlotSize();
m_selected_amount = item.count;
m_selected_dragging = false;
break;