diff options
| author | Jan Djärv | 2003-03-17 23:17:32 +0000 |
|---|---|---|
| committer | Jan Djärv | 2003-03-17 23:17:32 +0000 |
| commit | 2a2071c381c188c9e94e64937e08e53a9658a199 (patch) | |
| tree | e19fbae6a7356ea9c80617990877f2a62c395c5f /src | |
| parent | 17097258bdba66a449f6c690090a2b536c80b17b (diff) | |
| download | emacs-2a2071c381c188c9e94e64937e08e53a9658a199.tar.gz emacs-2a2071c381c188c9e94e64937e08e53a9658a199.zip | |
* gtkutil.c (xg_set_toolkit_scroll_bar_thumb): Check if new values
equal old values before updating.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 3 | ||||
| -rw-r--r-- | src/gtkutil.c | 31 |
2 files changed, 25 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index cd271f1b116..3dc416e6387 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | 2003-03-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | 1 | 2003-03-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> |
| 2 | 2 | ||
| 3 | * gtkutil.c (xg_set_toolkit_scroll_bar_thumb): Check if new values | ||
| 4 | equal old values before updating. | ||
| 5 | |||
| 3 | * xterm.c (xg_scroll_callback): Remove xg_ignore_next_thumb. | 6 | * xterm.c (xg_scroll_callback): Remove xg_ignore_next_thumb. |
| 4 | 7 | ||
| 5 | * gtkutil.c (xg_initialize): Remove xg_ignore_next_thumb. | 8 | * gtkutil.c (xg_initialize): Remove xg_ignore_next_thumb. |
diff --git a/src/gtkutil.c b/src/gtkutil.c index d66b8523b18..a95be3eb40d 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -2625,6 +2625,7 @@ xg_set_toolkit_scroll_bar_thumb (bar, portion, position, whole) | |||
| 2625 | gdouble shown; | 2625 | gdouble shown; |
| 2626 | gdouble top; | 2626 | gdouble top; |
| 2627 | int size, value; | 2627 | int size, value; |
| 2628 | int new_upper, new_step; | ||
| 2628 | 2629 | ||
| 2629 | adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); | 2630 | adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); |
| 2630 | 2631 | ||
| @@ -2652,21 +2653,33 @@ xg_set_toolkit_scroll_bar_thumb (bar, portion, position, whole) | |||
| 2652 | value = min (value, whole - size); | 2653 | value = min (value, whole - size); |
| 2653 | value = max (value, XG_SB_MIN); | 2654 | value = max (value, XG_SB_MIN); |
| 2654 | 2655 | ||
| 2655 | adj->page_size = (int)size; | ||
| 2656 | |||
| 2657 | /* gtk_range_set_value invokes the callback. Set | 2656 | /* gtk_range_set_value invokes the callback. Set |
| 2658 | ignore_gtk_scrollbar to make the callback do nothing */ | 2657 | ignore_gtk_scrollbar to make the callback do nothing */ |
| 2659 | xg_ignore_gtk_scrollbar = 1; | 2658 | xg_ignore_gtk_scrollbar = 1; |
| 2660 | 2659 | ||
| 2661 | gtk_range_set_range (GTK_RANGE (wscroll), adj->lower, max (whole, size)); | 2660 | 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 | } | ||
| 2662 | 2679 | ||
| 2663 | /* Assume all lines are of equal size. */ | 2680 | if ((int) gtk_range_get_value (GTK_RANGE (wscroll)) != value) |
| 2664 | /* Assume a page increment is about 95% of the page size */ | 2681 | gtk_range_set_value (GTK_RANGE (wscroll), (gdouble)value); |
| 2665 | gtk_range_set_increments (GTK_RANGE (wscroll), | ||
| 2666 | portion / max (1, FRAME_HEIGHT (f)), | ||
| 2667 | (int) (0.95*adj->page_size)); | ||
| 2668 | 2682 | ||
| 2669 | gtk_range_set_value (GTK_RANGE (wscroll), (gdouble)value); | ||
| 2670 | xg_ignore_gtk_scrollbar = 0; | 2683 | xg_ignore_gtk_scrollbar = 0; |
| 2671 | 2684 | ||
| 2672 | /* Make GTK draw the new thumb. We are not using a pure GTK event | 2685 | /* Make GTK draw the new thumb. We are not using a pure GTK event |