mirror of
https://github.com/minetest/minetest.git
synced 2025-01-09 14:57:29 +01:00
Add explanation to touchscreen item tooltip code (#15607)
this explains some cryptic inventory code I wrote in #14029 / 771da80bbb85c9fa4f0dcf0f3d04f46a0a20239f
This commit is contained in:
parent
27c3aade5d
commit
b50b619be7
@ -137,12 +137,26 @@ 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 over 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 "left-dragging"
|
||||
// (used to distribute items evenly).
|
||||
// In this case, the user doesn't see an item being dragged,
|
||||
// so we don't show the tooltip.
|
||||
// Note: `m_fs_menu->getSelectedAmount() != 0` below 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())
|
||||
|
Loading…
Reference in New Issue
Block a user