From ee1ad16e23b27dfdf2364a0016b53b138122a4ba Mon Sep 17 00:00:00 2001 From: M-II-R Date: Tue, 21 Jul 2026 12:17:24 +0300 Subject: [PATCH 1/3] Change Scrollbar's hover check behavior. Now Scrollbar checks if it's hovered like it's done by Slider. --- src/Widgets/Scrollbar.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Widgets/Scrollbar.cpp b/src/Widgets/Scrollbar.cpp index 0f475eff9..e25930e00 100644 --- a/src/Widgets/Scrollbar.cpp +++ b/src/Widgets/Scrollbar.cpp @@ -449,11 +449,6 @@ namespace tgui if (!m_mouseHover) mouseEnteredWidget(); } - else - { - if (m_mouseHover) - mouseLeftWidget(); - } pos -= getPosition(); @@ -1147,7 +1142,7 @@ namespace tgui states.transform.translate(m_thumb.getPosition()); if (m_spriteThumb.isSet()) { - if (m_mouseHover && m_spriteThumbHover.isSet() && (m_mouseHoverOverPart == Scrollbar::Part::Thumb)) + if (m_mouseHover && m_spriteThumbHover.isSet() && (m_mouseHoverOverPart == Scrollbar::Part::Thumb || m_mouseHoverOverPart == Scrollbar::Part::None)) target.drawSprite(states, m_spriteThumbHover); else target.drawSprite(states, m_spriteThumb); From f49a84c496b54fbffcd6cd2d2c8b8bb178f81021 Mon Sep 17 00:00:00 2001 From: M-II-R Date: Tue, 21 Jul 2026 13:36:37 +0300 Subject: [PATCH 2/3] Change behavior of Scrollbar not having Hover texture. --- src/Widgets/Scrollbar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Widgets/Scrollbar.cpp b/src/Widgets/Scrollbar.cpp index e25930e00..3d0b7a5b9 100644 --- a/src/Widgets/Scrollbar.cpp +++ b/src/Widgets/Scrollbar.cpp @@ -1149,7 +1149,7 @@ namespace tgui } else { - if (m_mouseHover && (m_mouseHoverOverPart == Scrollbar::Part::Thumb) && m_thumbColorHoverCached.isSet()) + if (m_mouseHover && (m_mouseHoverOverPart == Scrollbar::Part::Thumb || m_mouseHoverOverPart == Scrollbar::Part::None) && m_thumbColorHoverCached.isSet()) target.drawFilledRect(states, {m_thumb.width, m_thumb.height}, Color::applyOpacity(m_thumbColorHoverCached, m_opacityCached)); From c4737a5d2e121942a944812177abbbdedf67e7bd Mon Sep 17 00:00:00 2001 From: M-II-R Date: Tue, 21 Jul 2026 14:15:23 +0300 Subject: [PATCH 3/3] Replaced Scrollbar.cpp. Removed previous changes; now using a different approach to drawing the Scrollbar. --- src/Widgets/Scrollbar.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Widgets/Scrollbar.cpp b/src/Widgets/Scrollbar.cpp index 3d0b7a5b9..cefa1449f 100644 --- a/src/Widgets/Scrollbar.cpp +++ b/src/Widgets/Scrollbar.cpp @@ -449,6 +449,11 @@ namespace tgui if (!m_mouseHover) mouseEnteredWidget(); } + else + { + if (m_mouseHover) + mouseLeftWidget(); + } pos -= getPosition(); @@ -1142,14 +1147,14 @@ namespace tgui states.transform.translate(m_thumb.getPosition()); if (m_spriteThumb.isSet()) { - if (m_mouseHover && m_spriteThumbHover.isSet() && (m_mouseHoverOverPart == Scrollbar::Part::Thumb || m_mouseHoverOverPart == Scrollbar::Part::None)) + if (((m_mouseHover && (m_mouseHoverOverPart == Scrollbar::Part::Thumb)) || (m_mouseDown && m_mouseDownOnThumb)) && m_spriteThumbHover.isSet()) target.drawSprite(states, m_spriteThumbHover); else target.drawSprite(states, m_spriteThumb); } else { - if (m_mouseHover && (m_mouseHoverOverPart == Scrollbar::Part::Thumb || m_mouseHoverOverPart == Scrollbar::Part::None) && m_thumbColorHoverCached.isSet()) + if (((m_mouseHover && (m_mouseHoverOverPart == Scrollbar::Part::Thumb)) || (m_mouseDown && m_mouseDownOnThumb)) && m_thumbColorHoverCached.isSet()) target.drawFilledRect(states, {m_thumb.width, m_thumb.height}, Color::applyOpacity(m_thumbColorHoverCached, m_opacityCached));