emacs-diffs
[Top][All Lists]
Advanced

[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;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]