2625 |
gdouble shown; |
gdouble shown; |
2626 |
gdouble top; |
gdouble top; |
2627 |
int size, value; |
int size, value; |
2628 |
|
int new_upper, new_step; |
2629 |
|
|
2630 |
adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); |
adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); |
2631 |
|
|
2653 |
value = min (value, whole - size); |
value = min (value, whole - size); |
2654 |
value = max (value, XG_SB_MIN); |
value = max (value, XG_SB_MIN); |
2655 |
|
|
|
adj->page_size = (int)size; |
|
|
|
|
2656 |
/* gtk_range_set_value invokes the callback. Set |
/* gtk_range_set_value invokes the callback. Set |
2657 |
ignore_gtk_scrollbar to make the callback do nothing */ |
ignore_gtk_scrollbar to make the callback do nothing */ |
2658 |
xg_ignore_gtk_scrollbar = 1; |
xg_ignore_gtk_scrollbar = 1; |
2659 |
|
|
2660 |
gtk_range_set_range (GTK_RANGE (wscroll), adj->lower, max (whole, size)); |
new_upper = max (whole, size); |
2661 |
|
new_step = portion / max (1, FRAME_HEIGHT (f)); |
2662 |
|
|
2663 |
|
if ((int) adj->page_size != size |
2664 |
|
|| (int) adj->upper != new_upper |
2665 |
|
|| (int) adj->step_increment != new_step) |
2666 |
|
{ |
2667 |
|
adj->page_size = (int) size; |
2668 |
|
|
2669 |
|
gtk_range_set_range (GTK_RANGE (wscroll), adj->lower, |
2670 |
|
(gdouble) new_upper); |
2671 |
|
|
2672 |
|
/* Assume all lines are of equal size. */ |
2673 |
|
/* Assume a page increment is about 95% of the page size */ |
2674 |
|
gtk_range_set_increments (GTK_RANGE (wscroll), |
2675 |
|
portion / max (1, FRAME_HEIGHT (f)), |
2676 |
|
(int) (0.95*adj->page_size)); |
2677 |
|
|
2678 |
|
} |
2679 |
|
|
2680 |
/* Assume all lines are of equal size. */ |
if ((int) gtk_range_get_value (GTK_RANGE (wscroll)) != value) |
2681 |
/* Assume a page increment is about 95% of the page size */ |
gtk_range_set_value (GTK_RANGE (wscroll), (gdouble)value); |
|
gtk_range_set_increments (GTK_RANGE (wscroll), |
|
|
portion / max (1, FRAME_HEIGHT (f)), |
|
|
(int) (0.95*adj->page_size)); |
|
2682 |
|
|
|
gtk_range_set_value (GTK_RANGE (wscroll), (gdouble)value); |
|
2683 |
xg_ignore_gtk_scrollbar = 0; |
xg_ignore_gtk_scrollbar = 0; |
2684 |
|
|
2685 |
/* Make GTK draw the new thumb. We are not using a pure GTK event |
/* Make GTK draw the new thumb. We are not using a pure GTK event |