/* When the thumb is at the bottom, position == whole. So we
need to increase `whole' to make space for the thumb. */
whole += portion;
-
- if (whole <= 0)
- top = 0, shown = 1;
- else
- {
- top = (double) position / whole;
- shown = (double) portion / whole;
- }
-
- /* Slider size. Must be in the range [1 .. MAX - MIN] where MAX
- is the scroll bar's maximum and MIN is the scroll bar's minimum
- value. */
- size = clip_to_bounds (1, shown * BE_SB_MAX, BE_SB_MAX);
-
- /* Position. Must be in the range [MIN .. MAX - SLIDER_SIZE]. */
- value = top * BE_SB_MAX;
- value = min (value, BE_SB_MAX - size);
-
- if (!bar->dragging)
- bar->page_size = size;
}
else
- {
- bar->page_size = 0;
+ bar->page_size = 0;
- size = (((double) portion / whole) * BE_SB_MAX);
- value = (((double) position / whole) * BE_SB_MAX);
+ if (whole <= 0)
+ top = 0, shown = 1;
+ else
+ {
+ top = (double) position / whole;
+ shown = (double) portion / whole;
}
+ /* Slider size. Must be in the range [1 .. MAX - MIN] where MAX
+ is the scroll bar's maximum and MIN is the scroll bar's minimum
+ value. */
+ size = clip_to_bounds (1, shown * BE_SB_MAX, BE_SB_MAX);
+
+ /* Position. Must be in the range [MIN .. MAX - SLIDER_SIZE]. */
+ value = top * BE_SB_MAX;
+ value = min (value, BE_SB_MAX - size);
+
+ if (!bar->dragging && scroll_bar_adjust_thumb_portion_p)
+ bar->page_size = size;
+
BView_scroll_bar_update (scroll_bar, lrint (size),
BE_SB_MAX, ceil (value),
(scroll_bar_adjust_thumb_portion_p