diff --git a/ui/dr-ui/ui/adjust.slint b/ui/dr-ui/ui/adjust.slint index b3b4db3..a113eb3 100644 --- a/ui/dr-ui/ui/adjust.slint +++ b/ui/dr-ui/ui/adjust.slint @@ -728,6 +728,31 @@ export component AdjustPanel inherits Rectangle { spacing: 0px; alignment: start; + // **The scroll gutter.** + // + // A strip down the right-hand edge that no control reaches, so + // there is always somewhere to put a thumb that means "scroll" + // and nothing else. + // + // It exists because of the arbitration in `SliderTrack`: a + // track stands the Flickable down as soon as a finger touches + // it, which is what makes dragging a slider reliable, and the + // cost is that the track can no longer be used to scroll past. + // The rows either side of a track were the only remaining + // purchase, and on a panel that is mostly tracks that came to + // aiming at a 20px band between controls. Reserving the space + // outright is the honest version of what was left to chance. + // + // Padding rather than a spacer element, and that is what makes + // it work: the strip is inside the Flickable but no child is + // laid out into it, so nothing puts a TouchArea over it. A + // press there reaches the Flickable directly, with no + // arbitration to lose. + // + // A full touch target wide (FR-UI-3), because a gutter too + // narrow to hit confidently is the problem it was added to fix. + padding-right: Theme.touch-target; + // One iteration per row, but only a group's *first* row draws // anything — and it draws the whole group. Every other row // renders nothing at all.