From e15fe7b09242621159ef0b8956f8b29dd2a3c400 Mon Sep 17 00:00:00 2001 From: slava Date: Wed, 31 May 2006 21:17:31 +0000 Subject: [PATCH] Fix off-by-one slider bug --- TODO.FACTOR.txt | 4 +--- library/ui/gadgets/sliders.factor | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index 8273de6d5a..7e983e719f 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -17,8 +17,7 @@ restores to an unresponsive gadget - fix top level window positioning - services do not launch if factor not running -- when scrolling wheel, or moving mouse out of window, rollover is not - updated +- rollover is not updated on focus changes - amd64 crash - get factor running on mac intel - constant branch folding @@ -62,7 +61,6 @@ - x11 input methods - roundoff is still not quite right with tracks -- clearing pane with ^L leaves scrollbar a pixel off - new browser: - browse generic words and classes - need actions for reloading the source file and opening word in jEdit diff --git a/library/ui/gadgets/sliders.factor b/library/ui/gadgets/sliders.factor index 268c070a49..13a5725bf8 100644 --- a/library/ui/gadgets/sliders.factor +++ b/library/ui/gadgets/sliders.factor @@ -25,14 +25,14 @@ TUPLE: slider elevator thumb value saved max page ; dup slider-page over slider-max 1 max / 1 min swap elevator-length * min-thumb-dim max ; -: slider-max* dup slider-max swap slider-page - 1 max ; +: slider-max* dup slider-max swap slider-page - 0 max ; : slider-scale ( slider -- n ) #! A scaling factor such that if x is a slider co-ordinate, #! x*n is the screen position of the thumb, and conversely #! for x/n. The '1 max' calls avoid division by zero. dup elevator-length over thumb-dim - 1 max - swap slider-max* / ; + swap slider-max* 1 max / ; : slider>screen slider-scale * ;