summaryrefslogtreecommitdiffstats
path: root/widget/src/scrollable.rs
diff options
context:
space:
mode:
authorLibravatar Giuliano Bellini s294739 <s294739@studenti.polito.it>2024-02-27 16:03:57 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-28 10:26:12 +0100
commit49d900d54bd6ba14fd202887083a6420d9fa6c37 (patch)
treef99594b7267c4a3e0abf82f988f244d426679099 /widget/src/scrollable.rs
parenta1de3f1c5593b3fb6e867ac522d1f42c49602a32 (diff)
downloadiced-49d900d54bd6ba14fd202887083a6420d9fa6c37.tar.gz
iced-49d900d54bd6ba14fd202887083a6420d9fa6c37.tar.bz2
iced-49d900d54bd6ba14fd202887083a6420d9fa6c37.zip
Fix scrollbar style when cursor is over `scrollable`
Diffstat (limited to 'widget/src/scrollable.rs')
-rw-r--r--widget/src/scrollable.rs32
1 files changed, 17 insertions, 15 deletions
diff --git a/widget/src/scrollable.rs b/widget/src/scrollable.rs
index c4873648..f736d92e 100644
--- a/widget/src/scrollable.rs
+++ b/widget/src/scrollable.rs
@@ -907,7 +907,15 @@ pub fn draw<Theme, Renderer>(
theme.active(style)
};
- let idle_scrollbar = theme.active(style).scrollbar;
+ let scrollbar_style = |is_dragging: bool, mouse_over_scrollbar: bool| {
+ if is_dragging {
+ theme.dragging(style).scrollbar
+ } else if cursor_over_scrollable.is_some() {
+ theme.hovered(style, mouse_over_scrollbar).scrollbar
+ } else {
+ theme.active(style).scrollbar
+ }
+ };
container::draw_background(
renderer,
@@ -984,13 +992,10 @@ pub fn draw<Theme, Renderer>(
if let Some(scrollbar) = scrollbars.y {
draw_scrollbar(
renderer,
- if mouse_over_y_scrollbar
- || state.y_scroller_grabbed_at.is_some()
- {
- appearance.scrollbar
- } else {
- idle_scrollbar
- },
+ scrollbar_style(
+ state.y_scroller_grabbed_at.is_some(),
+ mouse_over_y_scrollbar,
+ ),
&scrollbar,
);
}
@@ -998,13 +1003,10 @@ pub fn draw<Theme, Renderer>(
if let Some(scrollbar) = scrollbars.x {
draw_scrollbar(
renderer,
- if mouse_over_x_scrollbar
- || state.x_scroller_grabbed_at.is_some()
- {
- appearance.scrollbar
- } else {
- idle_scrollbar
- },
+ scrollbar_style(
+ state.x_scroller_grabbed_at.is_some(),
+ mouse_over_x_scrollbar,
+ ),
&scrollbar,
);
}