summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-12-01 11:32:51 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-12-01 11:32:51 +0200
commitf4272ccf8f0b0bbd76b28bbc715dd8534507a9bf (patch)
tree1b4106bc46531dc53844ef878d61b089e541a60b
parent4196b0d341ec9132490eca6f9a116b80042ee2b1 (diff)
downloadminetest-f4272ccf8f0b0bbd76b28bbc715dd8534507a9bf.tar.gz
minetest-f4272ccf8f0b0bbd76b28bbc715dd8534507a9bf.tar.bz2
minetest-f4272ccf8f0b0bbd76b28bbc715dd8534507a9bf.zip
Enable simple drag and drop in inventory
-rw-r--r--src/guiInventoryMenu.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/guiInventoryMenu.cpp b/src/guiInventoryMenu.cpp
index 47393e800..45733bcd9 100644
--- a/src/guiInventoryMenu.cpp
+++ b/src/guiInventoryMenu.cpp
@@ -328,6 +328,9 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
{
char amount = -1;
+ v2s32 p(event.MouseInput.X, event.MouseInput.Y);
+ ItemSpec s = getItemAtPos(p);
+
if(event.MouseInput.Event==EMIE_MOUSE_MOVED)
m_pointer = v2s32(event.MouseInput.X, event.MouseInput.Y);
else if(event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN)
@@ -336,15 +339,19 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
amount = 1;
else if(event.MouseInput.Event == EMIE_MMOUSE_PRESSED_DOWN)
amount = 10;
+ else if(event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP &&
+ m_selected_item &&
+ (m_selected_item->listname != s.listname
+ || m_selected_item->i != s.i))
+ amount = 0;
+
if(amount >= 0)
{
- v2s32 p(event.MouseInput.X, event.MouseInput.Y);
- //infostream<<"Mouse down at p=("<<p.X<<","<<p.Y<<")"<<std::endl;
- ItemSpec s = getItemAtPos(p);
+ //infostream<<"Mouse action at p=("<<p.X<<","<<p.Y<<")"<<std::endl;
if(s.isValid())
{
- infostream<<"Mouse down on "<<s.inventoryname
+ infostream<<"Mouse action on "<<s.inventoryname
<<"/"<<s.listname<<" "<<s.i<<std::endl;
if(m_selected_item)
{