changeset 76016:dea718e903a0

(w32_set_scroll_bar_thumb): Don't update thumb size while dragging to avoid "random scrolling" effects. Disable unused code.
author Kim F. Storm <storm@cua.dk>
date Mon, 19 Feb 2007 10:56:04 +0000
parents ab0af4540bf8
children f110ee6599bf
files src/w32term.c
diffstat 1 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32term.c	Mon Feb 19 10:55:47 2007 +0000
+++ b/src/w32term.c	Mon Feb 19 10:56:04 2007 +0000
@@ -3478,8 +3478,25 @@
   BOOL draggingp = !NILP (bar->dragging) ? TRUE : FALSE;
   SCROLLINFO si;
 
+  /* Dragging the w32 scroll-bar handle in a file like INSTALL.CVS
+     gives very odd scrolling behaviour with the code below which
+     "only updates page size if currently dragging".  The cause
+     seems to be that the W32 api may "silently" adjust the thumb
+     position when the thumb page is change.
+
+     So simply don't make any updates to the scroll-bar geometry
+     while dragging.  KFS 2007-02-19.  */
+
+  if (draggingp)
+    return;
+
   if (whole)
     {
+#if 0
+      /* This code is not used (the settings are overwritten
+	 immediately by the lines below it).
+	 Should it be used?  KFS 2007-02-19.  */
+
       /* Position scroll bar at rock bottom if the bottom of the
          buffer is visible. This avoids shinking the thumb away
          to nothing if it is held at the bottom of the buffer.  */
@@ -3489,6 +3506,7 @@
             + VERTICAL_SCROLL_BAR_MIN_HANDLE;
           sb_pos = range;
         }
+#endif
 
       sb_page = portion * range / whole + VERTICAL_SCROLL_BAR_MIN_HANDLE;
       sb_pos = position * range / whole;