Scroll wheel not working with 65536 files

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: Hacker, petermad, Stefan2, white

Post Reply
Zom-B
Junior Member
Junior Member
Posts: 36
Joined: 2006-11-20, 17:46 UTC

Scroll wheel not working with 65536 files

Post by *Zom-B »

When a directory contains 65536 files or more, the scroll wheel suddenly stops working.

This might be related to a fixed bug in which the selection wrapped modulo 65536 in version 6.53 and earlier.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50475
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Unfortunately I couldn't find any hint in my code from where such a limitation could come.
Can you determine whether TC itself or the mouse driver scrolls the list, please?

Just add the line
IgnoreWheel=1

to your wincmd.ini section [Configuration].
Author of Total Commander
https://www.ghisler.com
rowkajjh2
Junior Member
Junior Member
Posts: 5
Joined: 2006-09-09, 07:20 UTC

Post by *rowkajjh2 »

I believe this is because the underlying windows-function (GetScrollPos() etc.) uses UINT (or something like that) and is therefor limited to 65536 positions.
CoolWater
Power Member
Power Member
Posts: 744
Joined: 2003-03-27, 16:33 UTC

Post by *CoolWater »

rowkajjh2 wrote:I believe this is because the underlying windows-function (GetScrollPos() etc.) uses UINT (or something like that) and is therefor limited to 65536 positions.
GetScrollPos() etc. use 32 bit int. So 65536 cannot be the limit...
Zom-B
Junior Member
Junior Member
Posts: 36
Joined: 2006-11-20, 17:46 UTC

Post by *Zom-B »

ghisler(Author) wrote:Unfortunately I couldn't find any hint in my code from where such a limitation could come.
Can you determine whether TC itself or the mouse driver scrolls the list, please?

Just add the line
IgnoreWheel=1

to your wincmd.ini section [Configuration].
With IgnoreWheel=1 it also refuses to scroll in the big directories.
Just to be sure, I tried IgnoreWheel=0. Same result.
User avatar
Flint
Power Member
Power Member
Posts: 3501
Joined: 2003-10-27, 09:25 UTC
Location: Belgrade, Serbia
Contact:

Post by *Flint »

ghisler(Author)
Some additions: this is reproduced in Full view, but is not reproduced in Brief view. Also, maybe, it needs using Branch mode.
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
 
Using TC 11.03 / Win10 x64
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

With IgnoreWheel=1 it also refuses to scroll in the big directories.
Just to be sure, I tried IgnoreWheel=0. Same result.
this is reproduced in Full view, but is not reproduced in Brief view
Confirmed both.
I switched to Linux, bye and thanks for all the fish!
User avatar
Clo
Moderator
Moderator
Posts: 5731
Joined: 2003-12-02, 19:01 UTC
Location: Bordeaux, France
Contact:

Forgotten limit ?

Post by *Clo »

2ghisler(Author)

:) Good morning,

• Is it not a limitation of Windows about the number of files per folder ?
- I remember (vaguely…) to have read something like this ages ago, with exactly that value…

• Maybe M$ forgot to remove¦improve this in the newer Windows (2k¦XP…) ?

:mrgreen: VG
Claude
Clo
Last edited by Clo on 2006-11-21, 23:35 UTC, edited 1 time in total.
#31505 Traducteur Français de TC French translator Aide en Français Tutoriels Français English Tutorials
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

rowkajjh2 wrote:I believe this is because the underlying windows-function (GetScrollPos() etc.) uses UINT (or something like that) and is therefor limited to 65536 positions.
I also think that it is a limitation of the listbox control. Like, isnt lParam in the WM_MOUSEWHEEL message simply an UINT, that is 16 bit long?
I switched to Linux, bye and thanks for all the fish!
tcrobbi
Junior Member
Junior Member
Posts: 28
Joined: 2006-11-09, 11:28 UTC

Post by *tcrobbi »

Its the WM_xSCROLL-Messages. There are 16bit. To get 32bit values one have to use Get/SetScrollInfo. Perhaps a limitation of delphi 2 too?
User avatar
now
Member
Member
Posts: 181
Joined: 2006-11-01, 08:34 UTC

Post by *now »

Last time I read the Windows API, a normal listbox can't hold more than 65535 (or was it 65536?) entries.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50475
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

With IgnoreWheel=1 it also refuses to scroll in the big directories.
Just to be sure, I tried IgnoreWheel=0. Same result.
If it fails with IgnoreWheel=1, then TC doesn't even react to the wheel messages (just to listbox scroll messages). Therefore the bug is somewhere in Windows...
Author of Total Commander
https://www.ghisler.com
kAtremer
Junior Member
Junior Member
Posts: 6
Joined: 2007-08-10, 23:51 UTC

Post by *kAtremer »

Same behaviour in `Synchronize dirs` dialog, when number of files goes above ~65535 (not exactly, somewhat lower than that).
Post Reply