emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Scrollbar Issues


From: grischka
Subject: Scrollbar Issues
Date: Mon, 31 Jul 2006 23:58:09 +0200

With scrolling using the scrollbar, the text view eventually 
moves in the opposite direction. 

A bit hard to describe, so I added some logging code that 
prints the mouse coordinate together with the top-line 
in the editor window. (code snippet attached below).

In GNU Emacs 22.0.50.1 (i386-msvc-nt5.1.2600)
configured using `configure --with-msvc (12.00)'

1.5 GHz CPU, Windows XP, emacs built from CVS 28-Jul-2006. 
(However just the same happens e.g. in 21.3, also)

Emacs is started from 'emacs-src\nt' with:
    ..\src\obj-spd\i386\emacs.exe -q ..\INSTALL.CVS

'INSTALL.CVS' has 78 lines and the editor shows initially 
lines 1..38. Then I clicked the scrollbar, and dragged down 
slowly. 

Output log: (lb=left_button, y=mouse.y, line=first_visible)

    [2700] mouse lb 1 y 145 -> line 1
    [2700] mouse lb 1 y 146 -> line 1
    [2700] mouse lb 1 y 147 -> line 1
    [2700] mouse lb 1 y 148 -> line 1
    [2700] mouse lb 1 y 149 -> line 1
    [2700] mouse lb 1 y 150 -> line 1
    [2700] mouse lb 1 y 151 -> line 1
    [2700] mouse lb 1 y 152 -> line 1
    [2700] mouse lb 1 y 153 -> line 1
    [2700] mouse lb 1 y 154 -> line 1
    [2700] mouse lb 1 y 155 -> line 3
    [2700] mouse lb 1 y 156 -> line 3
    [2700] mouse lb 1 y 157 -> line 3
    [2700] mouse lb 1 y 158 -> line 3
    [2700] mouse lb 1 y 159 -> line 3
    [2700] mouse lb 1 y 160 -> line 3
    [2700] mouse lb 1 y 161 -> line 3
    [2700] mouse lb 1 y 162 -> line 3
    [2700] mouse lb 1 y 163 -> line 3
    [2700] mouse lb 1 y 164 -> line 3
    [2700] mouse lb 1 y 165 -> line 3
    [2700] mouse lb 1 y 166 -> line 3
    [2700] mouse lb 1 y 167 -> line 3
    [2700] mouse lb 1 y 168 -> line 3
    [2700] mouse lb 1 y 169 -> line 4
    [2700] mouse lb 1 y 170 -> line 4
    [2700] mouse lb 1 y 171 -> line 4
    [2700] mouse lb 1 y 172 -> line 4
    [2700] mouse lb 1 y 173 -> line 4
    [2700] mouse lb 1 y 174 -> line 4
    [2700] mouse lb 1 y 175 -> line 4
    [2700] mouse lb 1 y 176 -> line 4
    [2700] mouse lb 1 y 177 -> line 4
    [2700] mouse lb 1 y 178 -> line 4
    [2700] mouse lb 1 y 179 -> line 4
    [2700] mouse lb 1 y 180 -> line 4
    [2700] mouse lb 1 y 181 -> line 4
    [2700] mouse lb 1 y 182 -> line 5
    [2700] mouse lb 1 y 183 -> line 5
    [2700] mouse lb 1 y 184 -> line 5
    [2700] mouse lb 1 y 185 -> line 5
    [2700] mouse lb 1 y 186 -> line 5
    [2700] mouse lb 1 y 187 -> line 5
    [2700] mouse lb 1 y 188 -> line 5
    [2700] mouse lb 1 y 189 -> line 5
    [2700] mouse lb 1 y 190 -> line 5
    [2700] mouse lb 1 y 191 -> line 5
    [2700] mouse lb 1 y 192 -> line 5
    [2700] mouse lb 1 y 193 -> line 6
    [2700] mouse lb 1 y 195 -> line 6
    [2700] mouse lb 1 y 196 -> line 6
    [2700] mouse lb 1 y 197 -> line 6
    [2700] mouse lb 1 y 198 -> line 6
    [2700] mouse lb 1 y 199 -> line 7
    [2700] mouse lb 1 y 201 -> line 8
    [2700] mouse lb 1 y 202 -> line 6 !!!
    [2700] mouse lb 1 y 203 -> line 9
    [2700] mouse lb 1 y 204 -> line 6 !!!
    [2700] mouse lb 1 y 205 -> line 9
    [2700] mouse lb 1 y 206 -> line 8 !!!
    [2700] mouse lb 1 y 207 -> line 9
    [2700] mouse lb 1 y 208 -> line 8 !!!
    [2700] mouse lb 1 y 209 -> line 9
    [2700] mouse lb 1 y 210 -> line 9
    [2700] mouse lb 1 y 212 -> line 9
    [2700] mouse lb 1 y 213 -> line 9
    [2700] mouse lb 1 y 214 -> line 11
    [2700] mouse lb 1 y 216 -> line 11
    [2700] mouse lb 1 y 217 -> line 11
    [2700] mouse lb 1 y 218 -> line 11
    [2700] mouse lb 1 y 219 -> line 11
    [2700] mouse lb 1 y 220 -> line 11
    [2700] mouse lb 1 y 221 -> line 11
    [2700] mouse lb 1 y 222 -> line 11
    [2700] mouse lb 1 y 223 -> line 11
    [2700] mouse lb 1 y 224 -> line 11
    [2700] mouse lb 1 y 225 -> line 11
    [2700] mouse lb 1 y 227 -> line 11
    [2700] mouse lb 1 y 228 -> line 11
    [2700] mouse lb 1 y 229 -> line 11
    [2700] mouse lb 1 y 230 -> line 12
    [2700] mouse lb 1 y 231 -> line 12
    [2700] mouse lb 1 y 232 -> line 12
    [2700] mouse lb 1 y 233 -> line 12
    [2700] mouse lb 1 y 234 -> line 12
    [2700] mouse lb 1 y 235 -> line 12
    [2700] mouse lb 1 y 236 -> line 12
    [2700] mouse lb 1 y 238 -> line 12
    [2700] mouse lb 1 y 239 -> line 13
    [2700] mouse lb 1 y 240 -> line 12 !!!
    [2700] mouse lb 1 y 241 -> line 14
    [2700] mouse lb 1 y 242 -> line 12 !!!
    [2700] mouse lb 1 y 243 -> line 14
    [2700] mouse lb 1 y 244 -> line 12 !!!
    [2700] mouse lb 1 y 245 -> line 14
    [2700] mouse lb 1 y 246 -> line 13 !!!
    [2700] mouse lb 1 y 247 -> line 14
    [2700] mouse lb 1 y 248 -> line 14
    [2700] mouse lb 1 y 249 -> line 14
    [2700] mouse lb 1 y 250 -> line 14
    [2700] mouse lb 1 y 251 -> line 14
    [2700] mouse lb 1 y 252 -> line 14
    [2700] mouse lb 1 y 253 -> line 14
    [2700] mouse lb 1 y 255 -> line 14
    [2700] mouse lb 1 y 256 -> line 14
    [2700] mouse lb 1 y 257 -> line 14
    [2700] mouse lb 1 y 258 -> line 14
    [2700] mouse lb 1 y 259 -> line 14
    [2700] mouse lb 1 y 260 -> line 14
    [2700] mouse lb 1 y 262 -> line 14
    [2700] mouse lb 1 y 263 -> line 14
    [2700] mouse lb 1 y 264 -> line 15
    [2700] mouse lb 1 y 265 -> line 15
    [2700] mouse lb 1 y 266 -> line 15
    [2700] mouse lb 1 y 267 -> line 15
    [2700] mouse lb 1 y 268 -> line 15
    [2700] mouse lb 1 y 269 -> line 15
    [2700] mouse lb 1 y 270 -> line 15
    [2700] mouse lb 1 y 272 -> line 15
    [2700] mouse lb 1 y 273 -> line 15
    [2700] mouse lb 1 y 274 -> line 15
    [2700] mouse lb 1 y 275 -> line 16
    [2700] mouse lb 1 y 276 -> line 19
    [2700] mouse lb 1 y 277 -> line 15 !!!
    [2700] mouse lb 1 y 278 -> line 16
    [2700] mouse lb 1 y 279 -> line 20
    [2700] mouse lb 1 y 280 -> line 16 !!!
    [2700] mouse lb 1 y 281 -> line 20
    [2700] mouse lb 1 y 282 -> line 16 !!!
    [2700] mouse lb 1 y 283 -> line 21
    [2700] mouse lb 1 y 284 -> line 16 !!!
    [2700] mouse lb 1 y 285 -> line 21
    [2700] mouse lb 1 y 286 -> line 16 !!!
    [2700] mouse lb 1 y 287 -> line 21
    [2700] mouse lb 1 y 288 -> line 18 !!!
    [2700] mouse lb 1 y 289 -> line 21
    [2700] mouse lb 1 y 290 -> line 18 !!!
    [2700] mouse lb 1 y 291 -> line 21
    [2700] mouse lb 1 y 292 -> line 19 !!!
    [2700] mouse lb 1 y 293 -> line 21
    [2700] mouse lb 1 y 294 -> line 20 !!!
    [2700] mouse lb 1 y 295 -> line 21
    [2700] mouse lb 1 y 296 -> line 20 !!!
    [2700] mouse lb 1 y 297 -> line 21
    [2700] mouse lb 1 y 298 -> line 21
    [2700] mouse lb 1 y 299 -> line 21
    [2700] mouse lb 1 y 300 -> line 21
    [2700] mouse lb 1 y 301 -> line 21
    [2700] mouse lb 1 y 302 -> line 21
    [2700] mouse lb 1 y 303 -> line 21
    [2700] mouse lb 1 y 305 -> line 21
    [2700] mouse lb 1 y 306 -> line 21
    [2700] mouse lb 1 y 307 -> line 22
    [2700] mouse lb 1 y 308 -> line 25
    [2700] mouse lb 1 y 309 -> line 19 !!!
    [2700] mouse lb 1 y 310 -> line 25
    [2700] mouse lb 1 y 311 -> line 19 !!!
    [2700] mouse lb 1 y 312 -> line 25
    [2700] mouse lb 1 y 313 -> line 20 !!!
    [2700] mouse lb 1 y 314 -> line 25
    [2700] mouse lb 1 y 315 -> line 20 !!!
    [2700] mouse lb 1 y 316 -> line 25
    [2700] mouse lb 1 y 317 -> line 21 !!!
    [2700] mouse lb 1 y 318 -> line 25
    [2700] mouse lb 1 y 319 -> line 21 !!!
    [2700] mouse lb 1 y 320 -> line 25
    [2700] mouse lb 1 y 321 -> line 21 !!!
    [2700] mouse lb 1 y 322 -> line 25
    [2700] mouse lb 1 y 323 -> line 21 !!!
    [2700] mouse lb 1 y 324 -> line 25
    [2700] mouse lb 1 y 325 -> line 21 !!!
    [2700] mouse lb 1 y 326 -> line 25
    [2700] mouse lb 1 y 327 -> line 22 !!!
    [2700] mouse lb 1 y 328 -> line 26
    [2700] mouse lb 1 y 329 -> line 25 !!!
    [2700] mouse lb 1 y 330 -> line 23 !!!
    [2700] mouse lb 1 y 331 -> line 25
    [2700] mouse lb 1 y 332 -> line 23 !!!
    [2700] mouse lb 1 y 333 -> line 26
    [2700] mouse lb 1 y 334 -> line 25 !!!
    [2700] mouse lb 1 y 335 -> line 25
    [2700] mouse lb 1 y 336 -> line 25
    [2700] mouse lb 1 y 337 -> line 25
    [2700] mouse lb 1 y 338 -> line 25
    [2700] mouse lb 1 y 340 -> line 25
    [2700] mouse lb 1 y 341 -> line 25
    [2700] mouse lb 1 y 342 -> line 25
    [2700] mouse lb 1 y 344 -> line 25
    [2700] mouse lb 1 y 345 -> line 25
    [2700] mouse lb 1 y 347 -> line 25
    [2700] mouse lb 1 y 348 -> line 25
    [2700] mouse lb 1 y 349 -> line 25
    [2700] mouse lb 1 y 351 -> line 25
    [2700] mouse lb 1 y 352 -> line 25
    [2700] mouse lb 1 y 354 -> line 26
    [2700] mouse lb 1 y 355 -> line 27
    [2700] mouse lb 1 y 356 -> line 28
    [2700] mouse lb 1 y 357 -> line 26 !!!
    [2700] mouse lb 1 y 358 -> line 28
    [2700] mouse lb 1 y 359 -> line 26 !!!
    [2700] mouse lb 1 y 360 -> line 28
    [2700] mouse lb 1 y 361 -> line 26 !!!
    [2700] mouse lb 1 y 362 -> line 28
    [2700] mouse lb 1 y 363 -> line 27 !!!
    [2700] mouse lb 1 y 364 -> line 28
    [2700] mouse lb 1 y 365 -> line 28
    [2700] mouse lb 1 y 366 -> line 28
    [2700] mouse lb 1 y 367 -> line 28
    [2700] mouse lb 1 y 368 -> line 28
    [2700] mouse lb 1 y 370 -> line 28
    [2700] mouse lb 1 y 371 -> line 28
    [2700] mouse lb 1 y 373 -> line 28
    [2700] mouse lb 1 y 374 -> line 28
    [2700] mouse lb 1 y 375 -> line 28
    [2700] mouse lb 1 y 377 -> line 28
    [2700] mouse lb 1 y 378 -> line 28
    [2700] mouse lb 1 y 379 -> line 28
    [2700] mouse lb 1 y 381 -> line 28
    [2700] mouse lb 1 y 382 -> line 29
    [2700] mouse lb 1 y 383 -> line 29
    [2700] mouse lb 1 y 384 -> line 29
    [2700] mouse lb 1 y 385 -> line 29
    [2700] mouse lb 1 y 387 -> line 29
    [2700] mouse lb 1 y 388 -> line 29
    [2700] mouse lb 1 y 389 -> line 29
    [2700] mouse lb 1 y 391 -> line 29
    [2700] mouse lb 1 y 392 -> line 29
    [2700] mouse lb 1 y 394 -> line 29
    [2700] mouse lb 1 y 395 -> line 29
    [2700] mouse lb 1 y 396 -> line 29
    [2700] mouse lb 1 y 398 -> line 29
    [2700] mouse lb 1 y 399 -> line 29
    [2700] mouse lb 1 y 401 -> line 29
    [2700] mouse lb 1 y 402 -> line 30
    [2700] mouse lb 1 y 403 -> line 30
    [2700] mouse lb 1 y 404 -> line 31
    [2700] mouse lb 1 y 405 -> line 31
    [2700] mouse lb 1 y 407 -> line 31
    [2700] mouse lb 1 y 408 -> line 31
    [2700] mouse lb 1 y 409 -> line 31
    [2700] mouse lb 1 y 410 -> line 32
    [2700] mouse lb 1 y 411 -> line 32
    [2700] mouse lb 1 y 413 -> line 32
    [2700] mouse lb 1 y 414 -> line 32
    [2700] mouse lb 1 y 415 -> line 32
    [2700] mouse lb 1 y 416 -> line 32
    [2700] mouse lb 1 y 417 -> line 32
    [2700] mouse lb 1 y 419 -> line 32
    [2700] mouse lb 1 y 420 -> line 32
    [2700] mouse lb 1 y 421 -> line 33
    [2700] mouse lb 1 y 422 -> line 33
    [2700] mouse lb 1 y 423 -> line 33
    [2700] mouse lb 1 y 424 -> line 33
    [2700] mouse lb 1 y 425 -> line 35
    [2700] mouse lb 1 y 426 -> line 35
    [2700] mouse lb 1 y 427 -> line 35
    [2700] mouse lb 1 y 428 -> line 35
    [2700] mouse lb 1 y 430 -> line 35
    [2700] mouse lb 1 y 431 -> line 35
    [2700] mouse lb 1 y 432 -> line 37
    [2700] mouse lb 1 y 433 -> line 35 !!!
    [2700] mouse lb 1 y 434 -> line 37
    [2700] mouse lb 1 y 435 -> line 37
    [2700] mouse lb 1 y 436 -> line 37
    [2700] mouse lb 1 y 437 -> line 38
    [2700] mouse lb 1 y 438 -> line 37 !!!
    [2700] mouse lb 1 y 439 -> line 38
    [2700] mouse lb 1 y 440 -> line 37 !!!
    [2700] mouse lb 1 y 441 -> line 38
    [2700] mouse lb 1 y 442 -> line 38
    [2700] mouse lb 1 y 443 -> line 38
    [2700] mouse lb 1 y 444 -> line 38
    [2700] mouse lb 1 y 445 -> line 38
    [2700] mouse lb 1 y 447 -> line 38
    [2700] mouse lb 1 y 448 -> line 38
    [2700] mouse lb 1 y 449 -> line 38
    [2700] mouse lb 1 y 450 -> line 40
    [2700] mouse lb 1 y 451 -> line 40
    [2700] mouse lb 1 y 452 -> line 40
    [2700] mouse lb 1 y 454 -> line 40
    [2700] mouse lb 1 y 455 -> line 40
    [2700] mouse lb 1 y 456 -> line 40
    [2700] mouse lb 0 y 481 -> line 40

>From the visual feedback point of view, it is a slightly confusing 
experience, at best. E.g. around lines 19-25 the text jumps about 
6 lines forth and back.

Note also that some lines just were left out, (e.g. line 2, 10, 39), 
then again with other lines it doesn't move for more than 10 mouse 
steps.

Also, where the log finishes, the scrollbar has arrived at the
bottom-most position, but the last line ("User YOUR_USERID") 
still was not visible. When I move the mouse fast, it is more 
lines that stay invisible, e.g. 4 lines in this run:

    [2700] mouse lb 1 y 178 -> line 1
    [2700] mouse lb 1 y 183 -> line 1
    [2700] mouse lb 1 y 199 -> line 3
    [2700] mouse lb 1 y 226 -> line 5
    [2700] mouse lb 1 y 255 -> line 12
    [2700] mouse lb 1 y 308 -> line 19
    [2700] mouse lb 1 y 364 -> line 28
    [2700] mouse lb 1 y 418 -> line 29
    [2700] mouse lb 1 y 460 -> line 31
    [2700] mouse lb 1 y 516 -> line 37
    [2700] mouse lb 0 y 589 -> line 37


Also, whats bit unusual with the scrollbar, when you just click it 
without any dragging, the text scrolls backwards already:

    [2700] mouse lb 1 y 425 -> line 25
    [2700] mouse lb 0 y 425 -> line 25
    [2700] mouse lb 1 y 425 -> line 23
    [2700] mouse lb 0 y 425 -> line 23
    [2700] mouse lb 1 y 425 -> line 22
    [2700] mouse lb 0 y 425 -> line 22
    [2700] mouse lb 1 y 425 -> line 21
    [2700] mouse lb 0 y 425 -> line 21


Well, hope this points out something. I know it's not easy to fix, 
and maybe the scrollbar is not top priority for you either.

But still, after some concentrated typing, a scrollbar can be fun 
to use and help to get a different view on the whole matter.

Provided it works precisely, that is. Otherwise it's maybe not worth 
the two columns less from the always precious edit space ;)

--- grischka

------------------------------------------------------------------

Snippet added in w32term.c (~line 3770) at the end of 
'w32_set_vertical_scroll_bar':

static void
w32_set_vertical_scroll_bar (w, portion, whole, position)
     struct window *w;
     int portion, whole, position;
{
  ...
  ...

  {
    char msg[100]; 
    POINT pt; 
    int n, line, unexpected;
    static int old_line, old_y;

    GetCursorPos(&pt);
    for (line = n = 1; n <= position; ++n)
        if (FETCH_CHAR(n) == '\n')
            ++line;

    unexpected = pt.y > old_y ? line < old_line : line > old_line;
    old_line = line, old_y = pt.y;

    sprintf(msg, "mouse lb %d y %d -> line %d%s\n",
        0 != (GetAsyncKeyState(VK_LBUTTON) & 0x8000),
        pt.y,
        line,
        unexpected ? " !!!" : ""
        );
    OutputDebugString(msg);
  }
}

------------------------------------------------------------------

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: DEU
  locale-coding-system: cp1252
  default-enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
  encoded-kbd-mode: t
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  unify-8859-on-encoding-mode: t
  utf-translate-cjk-mode: t
  auto-compression-mode: t
  line-number-mode: t

Recent input:
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> 
<mouse-1> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <menu-bar> <help-menu> <re
port-emacs-bug>

Recent messages:
(C:\test\emacs-22.cvs\src\obj-spd\i386\emacs.exe -q ..\INSTALL.CVS)
Loading encoded-kb...done
For information about the GNU Project and its goals, type C-h C-p.
Loading emacsbug...
Loading regexp-opt...done
Loading emacsbug...done







reply via email to

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