From a784a68c44768ca28d83c795811c63c96f2e3466 Mon Sep 17 00:00:00 2001 From: GHOST11111100 Date: Sat, 26 Jul 2025 22:02:53 +0300 Subject: [PATCH] refactor tooltip handling in SlotView to improve caption and description retrieval --- src/graphics/ui/elements/InventoryView.cpp | 26 ++++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/graphics/ui/elements/InventoryView.cpp b/src/graphics/ui/elements/InventoryView.cpp index a02a49da..38361857 100644 --- a/src/graphics/ui/elements/InventoryView.cpp +++ b/src/graphics/ui/elements/InventoryView.cpp @@ -119,25 +119,37 @@ SlotView::SlotView(GUI& gui, SlotLayout layout) void SlotView::refreshTooltip(const ItemStack& stack, const ItemDef& item) { itemid_t itemid = stack.getItemId(); - if (itemid == cache.stack.getItemId()) { + dv::value* caption = stack.getField("caption"); + dv::value* description = stack.getField("description"); + if ( + itemid == cache.stack.getItemId() && + caption == cache.stack.getField("caption") && + description == cache.stack.getField("description") + ) { return; } if (itemid) { - dv::value* caption = stack.getField("caption"); - dv::value* description = stack.getField("description"); std::wstring captionText; std::wstring descriptionText; if (description != nullptr) { - descriptionText = util::pascal_case( langs::get( util::str2wstr_utf8( description->asString() ) ) ); + descriptionText = util::pascal_case( + langs::get(util::str2wstr_utf8(description->asString())) + ); } else { - descriptionText = util::pascal_case( langs::get( util::str2wstr_utf8( item.description ) ) ); + descriptionText = util::pascal_case( + langs::get(util::str2wstr_utf8(item.description)) + ); } if (caption != nullptr) { - captionText = util::pascal_case( langs::get( util::str2wstr_utf8( caption->asString() ) ) ); + captionText = util::pascal_case( + langs::get(util::str2wstr_utf8(caption->asString())) + ); } else { - captionText = util::pascal_case( langs::get( util::str2wstr_utf8( item.caption ) ) ); + captionText = util::pascal_case( + langs::get(util::str2wstr_utf8(item.caption)) + ); } tooltip = captionText + L"\n" + descriptionText;