diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-07-03 16:00:30 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-07-03 16:00:30 +0300 |
commit | 7f8fd01cdd56b322c19e58c19d483fb32fb05cb5 (patch) | |
tree | 0330b2853c3a5222ca6aea2d8d4c769ac47a2e31 | |
parent | 2eb15d389f85e300cb124b990ebbf2663acaa637 (diff) | |
download | mv-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.cpp | 17 | ||||
-rw-r--r-- | src/gui/widgets/dropshortcutcontainer.cpp | 17 | ||||
-rw-r--r-- | src/gui/widgets/itemshortcutcontainer.cpp | 2 | ||||
-rw-r--r-- | src/gui/widgets/spellshortcutcontainer.cpp | 2 |
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(); } } } |