[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/macterm.c
From: |
YAMAMOTO Mitsuharu |
Subject: |
[Emacs-diffs] Changes to emacs/src/macterm.c |
Date: |
Thu, 23 Feb 2006 10:43:10 +0000 |
Index: emacs/src/macterm.c
diff -u emacs/src/macterm.c:1.155 emacs/src/macterm.c:1.156
--- emacs/src/macterm.c:1.155 Wed Feb 22 07:59:45 2006
+++ emacs/src/macterm.c Thu Feb 23 10:43:10 2006
@@ -4529,7 +4529,7 @@
int portion, position, whole;
{
ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
- int value, viewsize, maximum, visible_p;
+ int value, viewsize, maximum;
if (whole == 0 || XINT (bar->track_height) == 0)
value = 0, viewsize = 1, maximum = 0;
@@ -4542,16 +4542,20 @@
BLOCK_INPUT;
- /* Temporarily hide the scroll bar to avoid multiple redraws. */
- visible_p = IsControlVisible (ch);
- SetControlVisibility (ch, false, false);
-
- SetControl32BitMinimum (ch, 0);
- SetControl32BitMaximum (ch, maximum);
- SetControl32BitValue (ch, value);
- SetControlViewSize (ch, viewsize);
+ if (IsControlVisible (ch)
+ && (GetControlViewSize (ch) != viewsize
+ || GetControl32BitValue (ch) != value
+ || GetControl32BitMaximum (ch) != maximum))
+ {
+ /* Temporarily hide the scroll bar to avoid multiple redraws. */
+ SetControlVisibility (ch, false, false);
+
+ SetControl32BitMaximum (ch, maximum);
+ SetControl32BitValue (ch, value);
+ SetControlViewSize (ch, viewsize);
- SetControlVisibility (ch, visible_p, true);
+ SetControlVisibility (ch, true, true);
+ }
UNBLOCK_INPUT;
}