aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2003-03-17 23:17:32 +0000
committerJan Djärv2003-03-17 23:17:32 +0000
commit2a2071c381c188c9e94e64937e08e53a9658a199 (patch)
treee19fbae6a7356ea9c80617990877f2a62c395c5f /src
parent17097258bdba66a449f6c690090a2b536c80b17b (diff)
downloademacs-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/ChangeLog3
-rw-r--r--src/gtkutil.c31
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 @@
12003-03-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 12003-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