diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/inventorywindow.cpp | 16 | ||||
-rw-r--r-- | src/gui/inventorywindow.h | 2 | ||||
-rw-r--r-- | src/net/tmwa/inventoryhandler.h | 3 |
3 files changed, 20 insertions, 1 deletions
diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index 403868cd1..a41334d06 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -427,6 +427,20 @@ void InventoryWindow::valueChanged(const gcn::SelectionEvent &event _UNUSED_) ItemAmountWindow::showWindow(ItemAmountWindow::ItemSplit, this, item, (item->getQuantity() - 1)); } + updateButtons(item); +} + +void InventoryWindow::updateButtons(Item *item) +{ + if (!mInventory || !mInventory->isMainInventory()) + return; + + Item *selectedItem = mItems->getSelectedItem(); + if (item && selectedItem != item) + return; + + if (!item) + item = selectedItem; if (!item || item->getQuantity() == 0) { @@ -472,8 +486,8 @@ void InventoryWindow::valueChanged(const gcn::SelectionEvent &event _UNUSED_) else mSplitButton->setEnabled(false); } -} +} void InventoryWindow::setSplitAllowed(bool allowed) { diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index 63da97173..9ca45aaea 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.h @@ -126,6 +126,8 @@ class InventoryWindow : public Window, void event(Mana::Channels channel, const Mana::Event &event); + void updateButtons(Item *item = 0); + private: /** * Updates the weight bar. diff --git a/src/net/tmwa/inventoryhandler.h b/src/net/tmwa/inventoryhandler.h index 8dd39a781..c91fb01f7 100644 --- a/src/net/tmwa/inventoryhandler.h +++ b/src/net/tmwa/inventoryhandler.h @@ -94,6 +94,9 @@ class EquipBackend : public Equipment::Backend item = PlayerInfo::getInventory()->getItem(inventoryIndex); if (item) item->setEquipped(true); + + if (inventoryWindow) + inventoryWindow->updateButtons(); } private: |