summaryrefslogtreecommitdiff
path: root/src/guiInventoryMenu.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2010-12-24 17:08:50 +0200
committerPerttu Ahola <celeron55@gmail.com>2010-12-24 17:08:50 +0200
commita26c92d7dda327f2b1483fe7250cb27580a0a039 (patch)
tree1f7a7b9cb9ceb200fa5e1480961cd9bbe9ae38a3 /src/guiInventoryMenu.cpp
parent705de63dcdfe78157234e1b65652d5c2f762dbd4 (diff)
downloadminetest-a26c92d7dda327f2b1483fe7250cb27580a0a039.tar.gz
minetest-a26c92d7dda327f2b1483fe7250cb27580a0a039.tar.bz2
minetest-a26c92d7dda327f2b1483fe7250cb27580a0a039.zip
disconnect method to connection to be used instead of just timing out
Diffstat (limited to 'src/guiInventoryMenu.cpp')
-rw-r--r--src/guiInventoryMenu.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/guiInventoryMenu.cpp b/src/guiInventoryMenu.cpp
index bba23e719..a1f7d02d0 100644
--- a/src/guiInventoryMenu.cpp
+++ b/src/guiInventoryMenu.cpp
@@ -228,8 +228,10 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
}
if(event.EventType==EET_MOUSE_INPUT_EVENT)
{
- if(event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN)
+ if(event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN
+ || event.MouseInput.Event == EMIE_RMOUSE_PRESSED_DOWN)
{
+ bool right = (event.MouseInput.Event == EMIE_RMOUSE_PRESSED_DOWN);
v2s32 p(event.MouseInput.X, event.MouseInput.Y);
//dstream<<"Mouse down at p=("<<p.X<<","<<p.Y<<")"<<std::endl;
ItemSpec s = getItemAtPos(p);
@@ -248,15 +250,21 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
dstream<<"Queueing IACTION_MOVE"<<std::endl;
IMoveAction *a =
new IMoveAction();
- a->count = 1;
+ a->count = right ? 1 : 0;
a->from_name = m_selected_item->listname;
a->from_i = m_selected_item->i;
a->to_name = s.listname;
a->to_i = s.i;
m_actions->push_back(a);
}
- delete m_selected_item;
- m_selected_item = NULL;
+ bool source_empties = false;
+ if(list_from && list_from->getItem(m_selected_item->i)->getCount()==1)
+ source_empties = true;
+ if(right == false || source_empties)
+ {
+ delete m_selected_item;
+ m_selected_item = NULL;
+ }
}
else
{