diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-01-02 19:47:56 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-01-02 19:47:56 +0300 |
commit | 9b1fed5643a2447495cf4b43309a23ada7901c03 (patch) | |
tree | 99fbca32626d62829c0aaec61e1b7729e4fb9f31 /src | |
parent | f1f892998b7edd7b939b61ecc4878ef10b7f688b (diff) | |
download | manaplus-9b1fed5643a2447495cf4b43309a23ada7901c03.tar.gz manaplus-9b1fed5643a2447495cf4b43309a23ada7901c03.tar.bz2 manaplus-9b1fed5643a2447495cf4b43309a23ada7901c03.tar.xz manaplus-9b1fed5643a2447495cf4b43309a23ada7901c03.zip |
fix itempopup update if old and new item is unknown.
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/popups/itempopup.cpp | 9 | ||||
-rw-r--r-- | src/gui/popups/itempopup.h | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/gui/popups/itempopup.cpp b/src/gui/popups/itempopup.cpp index 4e727f9f5..1fd496dec 100644 --- a/src/gui/popups/itempopup.cpp +++ b/src/gui/popups/itempopup.cpp @@ -53,6 +53,7 @@ ItemPopup::ItemPopup() : mItemType(ITEM_UNUSABLE), mIcon(new Icon(this, nullptr)), mLastName(), + mLastId(0), mLastColor(1) { // Item Name @@ -112,6 +113,7 @@ void ItemPopup::setItem(const Item *const item, const bool showImage) { mLastName = ii.getName(); mLastColor = item->getColor(); + mLastId = item->getId(); if (serverVersion > 0) { mItemName->setCaption(strprintf("%s (+%d), %d", ii.getName( @@ -132,8 +134,11 @@ void ItemPopup::setItem(const Item *const item, const bool showImage) void ItemPopup::setItem(const ItemInfo &item, const unsigned char color, const bool showImage, int id) { - if (!mIcon || (item.getName() == mLastName && color == mLastColor)) + if (!mIcon || (item.getName() == mLastName && color == mLastColor + && id == mLastId)) + { return; + } if (id == -1) id = item.getId(); @@ -167,6 +172,7 @@ void ItemPopup::setItem(const ItemInfo &item, const unsigned char color, mLastName = item.getName(); mLastColor = color; + mLastId = id; if (serverVersion > 0) { @@ -267,4 +273,5 @@ void ItemPopup::mouseMoved(gcn::MouseEvent &event) setVisible(false); mLastName.clear(); mLastColor = 1; + mLastId = 0; } diff --git a/src/gui/popups/itempopup.h b/src/gui/popups/itempopup.h index 9c9e21f58..ac4683938 100644 --- a/src/gui/popups/itempopup.h +++ b/src/gui/popups/itempopup.h @@ -70,6 +70,7 @@ class ItemPopup final : public Popup ItemType mItemType; Icon *mIcon; std::string mLastName; + int mLastId; unsigned char mLastColor; void setLabelColor(Label *label, const ItemType type) const; |