diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-12-01 11:32:51 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-12-01 11:32:51 +0200 |
commit | f4272ccf8f0b0bbd76b28bbc715dd8534507a9bf (patch) | |
tree | 1b4106bc46531dc53844ef878d61b089e541a60b | |
parent | 4196b0d341ec9132490eca6f9a116b80042ee2b1 (diff) | |
download | minetest-f4272ccf8f0b0bbd76b28bbc715dd8534507a9bf.tar.gz minetest-f4272ccf8f0b0bbd76b28bbc715dd8534507a9bf.tar.bz2 minetest-f4272ccf8f0b0bbd76b28bbc715dd8534507a9bf.zip |
Enable simple drag and drop in inventory
-rw-r--r-- | src/guiInventoryMenu.cpp | 15 |
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) { |