diff options
author | DS <vorunbekannt75@web.de> | 2022-09-13 13:48:28 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2022-09-14 13:48:06 +0200 |
commit | b9f6832347e5a0ca9e10f0d45b2eb1a4c5d82d28 (patch) | |
tree | f03e032a5655c1edd69a8614aa8be84538e0b494 /src/gui | |
parent | f8bb0cd3d1da9d2d9d8dffe78cd0fb651e16a8af (diff) | |
download | minetest-b9f6832347e5a0ca9e10f0d45b2eb1a4c5d82d28.tar.gz minetest-b9f6832347e5a0ca9e10f0d45b2eb1a4c5d82d28.tar.bz2 minetest-b9f6832347e5a0ca9e10f0d45b2eb1a4c5d82d28.zip |
Fix tooltips for dropdown, scrollbar and more (#12747)
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/guiFormSpecMenu.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 1f9914e72..62936743c 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -825,9 +825,9 @@ void GUIFormSpecMenu::parseImage(parserData* data, const std::string &element) core::rect<s32> middle; if (parts.size() >= 4) parseMiddleRect(parts[3], &middle); - + // Temporary fix for issue #12581 in 5.6.0. - // Use legacy image when not rendering 9-slice image because GUIAnimatedImage + // Use legacy image when not rendering 9-slice image because GUIAnimatedImage // uses NNAA filter which causes visual artifacts when image uses alpha blending. gui::IGUIElement *e; @@ -3643,13 +3643,21 @@ void GUIFormSpecMenu::drawMenu() #endif bool hovered_element_found = false; - if (hovered != NULL) { + if (hovered) { if (m_show_debug) { core::rect<s32> rect = hovered->getAbsoluteClippingRect(); driver->draw2DRectangle(0x22FFFF00, rect, &rect); } - s32 id = hovered->getID(); + // find the formspec-element of the hovered IGUIElement (a parent) + s32 id; + for (gui::IGUIElement *hovered_fselem = hovered; hovered_fselem; + hovered_fselem = hovered_fselem->getParent()) { + id = hovered_fselem->getID(); + if (id != -1) + break; + } + u64 delta = 0; if (id == -1) { m_old_tooltip_id = id; |