GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git
feat: param scrollbar sits an eighth of the pane width in from the right
The scrollbar's right edge is now inset from the pane's right side by an
eighth of the pane width, instead of a fixed 4px. Factored into a
scrollbar_x() helper so the draw path and hit test stay in sync.
Co-Authored-By: Claude Fable 5 <[email protected]>
src/widget/container/parameters_bg.rs | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/widget/container/parameters_bg.rs b/src/widget/container/parameters_bg.rs
index 252f638..0f4274c 100644
--- a/src/widget/container/parameters_bg.rs
+++ b/src/widget/container/parameters_bg.rs
@@ -168,12 +168,19 @@ impl ParametersBg {
rects
}
+ /// The scrollbar's left x. The bar sits an eighth of the plate's width in from the right
+ /// edge — i.e. that gap separates the bar's right edge from the pane's right side.
+ fn scrollbar_x(&self) -> f32 {
+ let sb_w = crate::layout::scrollbar_width();
+ self.rect.x + self.rect.width - sb_w - self.rect.width / 8.0
+ }
+
pub fn hit_test_scrollbar(&self, px: f32, py: f32) -> bool {
if self.content_h <= self.rect.height {
return false;
}
let sb_w = crate::layout::scrollbar_width();
- let sb_x = self.rect.x + self.rect.width - sb_w - 4.0;
+ let sb_x = self.scrollbar_x();
let sb_track_h = self.rect.height - 8.0;
let sb_track_y = self.rect.y + 4.0;
@@ -216,7 +223,7 @@ impl ParametersBg {
return Vec::new();
}
let sb_w = crate::layout::scrollbar_width();
- let sb_x = self.rect.x + self.rect.width - sb_w - 4.0;
+ let sb_x = self.scrollbar_x();
let sb_track_h = self.rect.height - 8.0;
let sb_track_y = self.rect.y + 4.0;