aboutsummaryrefslogtreecommitdiff
path: root/src/gui/guiFormSpecMenu.cpp
diff options
context:
space:
mode:
authorDS <vorunbekannt75@web.de>2022-09-13 13:48:28 +0200
committerGitHub <noreply@github.com>2022-09-13 12:48:28 +0100
commitf3f3b752f2b13e1edb6d495a161fe49e960453c9 (patch)
treed278d296c47f808f5587a051beb6b6341cbaa99c /src/gui/guiFormSpecMenu.cpp
parentcea5fd56a4b724fe6efe6852dc849d517a61d0e2 (diff)
downloadminetest-f3f3b752f2b13e1edb6d495a161fe49e960453c9.tar.xz
Fix tooltips for dropdown, scrollbar and more (#12747)
Diffstat (limited to 'src/gui/guiFormSpecMenu.cpp')
-rw-r--r--src/gui/guiFormSpecMenu.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp
index f1b33ab81..846b657d7 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;
@@ -3642,13 +3642,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;