@@ -1115,6 +1115,19 @@ void Skin::drawButton(Widget* w, const core::recti &rect,
11151115 SkinConfig::m_render_params[" button::neutral" ],
11161116 w->m_deactivated );
11171117 } // if not deactivated or focused
1118+
1119+ // Check for tooltips even on deactivated widgets
1120+ if (w->hasTooltip ())
1121+ {
1122+ const core::position2di mouse_position =
1123+ irr_driver->getDevice ()->getCursorControl ()->getPosition ();
1124+
1125+ if (sized_rect.isPointInside (mouse_position))
1126+ {
1127+ m_tooltip_at_mouse.push_back (true );
1128+ m_tooltips.push_back (w);
1129+ }
1130+ }
11181131 }
11191132 else // not within an appearing dialog
11201133 {
@@ -1136,6 +1149,19 @@ void Skin::drawButton(Widget* w, const core::recti &rect,
11361149 SkinConfig::m_render_params[" button::neutral" ],
11371150 w->m_deactivated );
11381151 } // if not deactivated or focused
1152+
1153+ // Check for tooltips even on deactivated widgets
1154+ if (w->hasTooltip ())
1155+ {
1156+ const core::position2di mouse_position =
1157+ irr_driver->getDevice ()->getCursorControl ()->getPosition ();
1158+
1159+ if (rect.isPointInside (mouse_position))
1160+ {
1161+ m_tooltip_at_mouse.push_back (true );
1162+ m_tooltips.push_back (w);
1163+ }
1164+ }
11391165 } // not within an appearing dialog
11401166} // drawButton
11411167
@@ -1687,6 +1713,16 @@ void Skin::drawRibbonChild(const core::recti &rect, Widget* widget,
16871713 m_tooltips.push_back (widget);
16881714 }
16891715 }
1716+ else if (widget->hasTooltip ())
1717+ {
1718+ // Check tooltips for deactivated widgets too
1719+ if (rect.isPointInside (irr_driver->getDevice ()->getCursorControl ()
1720+ ->getPosition ()))
1721+ {
1722+ m_tooltip_at_mouse.push_back (true );
1723+ m_tooltips.push_back (widget);
1724+ }
1725+ }
16901726#endif
16911727} // drawRibbonChild
16921728
@@ -1875,6 +1911,18 @@ void Skin::drawSpinnerBody(const core::recti &rect, Widget* widget,
18751911 m_tooltip_at_mouse.push_back (false );
18761912 m_tooltips.push_back (widget);
18771913 }
1914+ else if (widget->hasTooltip ())
1915+ {
1916+ // Check tooltips for deactivated widgets too
1917+ const core::position2di mouse_position =
1918+ irr_driver->getDevice ()->getCursorControl ()->getPosition ();
1919+
1920+ if (sized_rect.isPointInside (mouse_position))
1921+ {
1922+ m_tooltip_at_mouse.push_back (true );
1923+ m_tooltips.push_back (widget);
1924+ }
1925+ }
18781926}
18791927
18801928// ----------------------------------------------------------------------------
@@ -2144,6 +2192,18 @@ void Skin::drawCheckBox(const core::recti &rect, Widget* widget, bool focused)
21442192 m_tooltips.push_back (widget);
21452193 }
21462194 }
2195+ else if (widget->hasTooltip ())
2196+ {
2197+ // Check tooltips for deactivated widgets too
2198+ const core::position2di mouse_position =
2199+ irr_driver->getDevice ()->getCursorControl ()->getPosition ();
2200+
2201+ if (rect.isPointInside (mouse_position))
2202+ {
2203+ m_tooltip_at_mouse.push_back (true );
2204+ m_tooltips.push_back (widget);
2205+ }
2206+ }
21472207} // drawCheckBox
21482208
21492209// ----------------------------------------------------------------------------
0 commit comments