summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-07-03 16:00:30 +0300
committerAndrei Karas <akaras@inbox.ru>2013-07-03 16:00:30 +0300
commit7f8fd01cdd56b322c19e58c19d483fb32fb05cb5 (patch)
tree0330b2853c3a5222ca6aea2d8d4c769ac47a2e31
parent2eb15d389f85e300cb124b990ebbf2663acaa637 (diff)
downloadmv-7f8fd01cdd56b322c19e58c19d483fb32fb05cb5.tar.gz
mv-7f8fd01cdd56b322c19e58c19d483fb32fb05cb5.tar.bz2
mv-7f8fd01cdd56b322c19e58c19d483fb32fb05cb5.tar.xz
mv-7f8fd01cdd56b322c19e58c19d483fb32fb05cb5.zip
fix drag and drop inside some windows.
-rw-r--r--src/gui/outfitwindow.cpp17
-rw-r--r--src/gui/widgets/dropshortcutcontainer.cpp17
-rw-r--r--src/gui/widgets/itemshortcutcontainer.cpp2
-rw-r--r--src/gui/widgets/spellshortcutcontainer.cpp2
4 files changed, 26 insertions, 12 deletions
diff --git a/src/gui/outfitwindow.cpp b/src/gui/outfitwindow.cpp
index d14abd701..a95d6fe2f 100644
--- a/src/gui/outfitwindow.cpp
+++ b/src/gui/outfitwindow.cpp
@@ -471,13 +471,18 @@ void OutfitWindow::mouseReleased(gcn::MouseEvent &event)
}
mMoved = false;
event.consume();
- if (!dragDrop.isEmpty() && dragDrop.getSource()
- == DRAGDROP_SOURCE_INVENTORY)
+ if (!dragDrop.isEmpty())
{
- mItems[mCurrentOutfit][index] = dragDrop.getItem();
- mItemColors[mCurrentOutfit][index] = dragDrop.getItemColor();
- dragDrop.clear();
- dragDrop.deselect();
+ DragDropSource src = dragDrop.getSource();
+ if (src == DRAGDROP_SOURCE_INVENTORY
+ || src == DRAGDROP_SOURCE_OUTFIT
+ || src == DRAGDROP_SOURCE_DROP)
+ {
+ mItems[mCurrentOutfit][index] = dragDrop.getItem();
+ mItemColors[mCurrentOutfit][index] = dragDrop.getItemColor();
+ dragDrop.clear();
+ dragDrop.deselect();
+ }
}
if (mItemClicked)
mItemClicked = false;
diff --git a/src/gui/widgets/dropshortcutcontainer.cpp b/src/gui/widgets/dropshortcutcontainer.cpp
index 8078347f7..f74db990b 100644
--- a/src/gui/widgets/dropshortcutcontainer.cpp
+++ b/src/gui/widgets/dropshortcutcontainer.cpp
@@ -252,13 +252,18 @@ void DropShortcutContainer::mouseReleased(gcn::MouseEvent &event)
dragDrop.clear();
return;
}
- if (!dragDrop.isEmpty() && dragDrop.getSource()
- == DRAGDROP_SOURCE_INVENTORY)
+ if (!dragDrop.isEmpty())
{
- dropShortcut->setItems(index, dragDrop.getItem(),
- dragDrop.getItemColor());
- dragDrop.clear();
- dragDrop.deselect();
+ DragDropSource src = dragDrop.getSource();
+ if (src == DRAGDROP_SOURCE_INVENTORY
+ || src == DRAGDROP_SOURCE_OUTFIT
+ || src == DRAGDROP_SOURCE_DROP)
+ {
+ dropShortcut->setItems(index, dragDrop.getItem(),
+ dragDrop.getItemColor());
+ dragDrop.clear();
+ dragDrop.deselect();
+ }
}
mItemClicked = false;
diff --git a/src/gui/widgets/itemshortcutcontainer.cpp b/src/gui/widgets/itemshortcutcontainer.cpp
index ec0776f36..517c783a0 100644
--- a/src/gui/widgets/itemshortcutcontainer.cpp
+++ b/src/gui/widgets/itemshortcutcontainer.cpp
@@ -386,6 +386,8 @@ void ItemShortcutContainer::mouseReleased(gcn::MouseEvent &event)
selShortcut->setItem(index, dragDrop.getItem(),
dragDrop.getItemColor());
}
+ dragDrop.clear();
+ dragDrop.deselect();
}
mItemClicked = false;
diff --git a/src/gui/widgets/spellshortcutcontainer.cpp b/src/gui/widgets/spellshortcutcontainer.cpp
index dad7f5dcf..436f0c583 100644
--- a/src/gui/widgets/spellshortcutcontainer.cpp
+++ b/src/gui/widgets/spellshortcutcontainer.cpp
@@ -245,6 +245,8 @@ void SpellShortcutContainer::mouseReleased(gcn::MouseEvent &event)
{
spellManager->swap(idx + index, idx + oldIndex);
spellManager->save();
+ dragDrop.clear();
+ dragDrop.deselect();
}
}
}