Add explanation to touchscreen item tooltip code

This commit is contained in:
grorp 2024-12-31 01:32:50 +01:00
parent 27c3aade5d
commit 0ece953b52

View File

@ -137,12 +137,25 @@ void GUIInventoryList::draw()
client, rotation_kind);
}
// Add hovering tooltip
// Add hovering tooltip. The tooltip disappears if any item is selected,
// including the currently hovered one.
bool show_tooltip = !item.empty() && hovering && !selected_item;
// Make it possible to see item tooltips on touchscreens
if (RenderingEngine::getLastPointerType() == PointerType::Touch) {
// Touchscreen users cannot hover above an item without selecting it.
// To allow touchscreen users to see item tooltips, we also show the
// tooltip if the item is selected and the finger is still on the
// source slot.
// The selected amount may be 0 in rare cases during so-called "left-dragging".
// In this case, since the user doesn't see an item being dragged,
// the tooltip isn't shown.
// Note: `m_fs_menu->getSelectedAmount() != 0` refers to the part of
// the selected item the user is dragging.
// `!item.empty()` would refer to the part of the selected item
// remaining in the source slot.
show_tooltip |= hovering && selected && m_fs_menu->getSelectedAmount() != 0;
}
if (show_tooltip) {
std::string tooltip = orig_item.getDescription(client->idef());
if (m_fs_menu->doTooltipAppendItemname())