[BUG] Overlay icons for junctions are still not shown...

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

User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Can anyone confirm that it works flawlessly under Windows 2000?
I cannot confirm that. The same problem here on Windows 2000.

Explorer displaying a directory containing a junction point.
Total Commander displaying a directory containing a junction point.
JFierce7
Senior Member
Senior Member
Posts: 214
Joined: 2005-07-17, 10:47 UTC

Post by *JFierce7 »

sqa_wizard wrote:The display of hardlinks works fine (even with "only standard icons" set) showing the tiny yellow overlay.
Just the icon for folder junctions uses icon 13 instead of the tiny green overlay at file lists.
Hmm - for me, hardlinks have always a little black arrow on yellow, regardless of the actual setting in NTFS links. Explorer shows the correct icon, btw.
Furthermore, the icon that is shown in TC's directory tree is a black arrow on green - it too differs from the actual setting in NTFS links.
Is this intentional?

Edit: Oh - well, forget it: I just had to restart TC...
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

...TC's directory tree is a black arrow on green - it too differs from the actual setting in NTFS links
Note: There is a significant difference between Hardlinks and Junctions !

Hardlinks can be set on files only (at least for Windows)
They are restricted to the same partition/volume.
You can rename each member of the hardlink.
You can remove each member of the link (source or destination(s) ) without dataloss.

Junctions can be set on folders only.
They can be spread across different drives (on the same machine).
You can remove the destinations only.
You can rename the destinations only.
#5767 Personal license
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

@ghisler:
Lefteous has confirmed above, that it also does NOT work on Windows 2000. What OS are you using?

Icfu
This account is for sale
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50475
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I'm using Windows 2000! But I found out something: I have a desktop.ini in the directory to which the junction points, which contains:

[.ShellClassInfo]
IconFile=C:\totalcmd\TOTALCMD.EXE
IconIndex=0

This way I get a Total Commander icon with a little arrow overlay on it. Without it, I get a big arrow for the junction. That's probably the reason why I don't show also an overlay, it would make no sense to show two arrows above each other...
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

I have a desktop.ini in the directory to which the junction points
This way I get a Total Commander icon with a little arrow overlay on it.
Even in this case it doesn't work here on Windows 2000. I get the big arrow icon always.
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

I have a desktop.ini in the directory to which the junction points, which contains:

[.ShellClassInfo]
IconFile=C:\totalcmd\TOTALCMD.EXE
IconIndex=0

This way I get a Total Commander icon with a little arrow overlay on it.
I can confirm that, but ONLY when the junction has +S or +R attribute! In this case I can reproduce: I see the Total Commander icon AND the overlay arrow.
That's probably the reason why I don't show also an overlay, it would make no sense to show two arrows above each other...
The request was not to show two arrows but to show one overlay arrow on a normal folder icon, just like in the separate tree...:
http://img151.imageshack.us/img151/9829/tcoverlaymg6.png

Please show the big arrow icon ONLY if no overlay extension is installed.

Icfu
This account is for sale
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50475
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Please show the big arrow icon ONLY if no overlay extension is installed.
How should TC know that? The overlays are delay-loaded! I could change the icon if there is an overlay, but there will still be the big arrow icon initially...
Author of Total Commander
https://www.ghisler.com
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

I could change the icon if there is an overlay, but there will still be the big arrow icon initially...
That's what I would expect, it's completely ok to do it like that.

Maybe it would also be possible to do it like that in the separate panels to have a consistent view.

Icfu
This account is for sale
octane
Junior Member
Junior Member
Posts: 9
Joined: 2006-06-29, 12:06 UTC

Post by *octane »

Is there a solution of this Problem?

The explorer: Image: http://ishark.myphotos.cc/core/1175372761473613937871c.jpg
and the same folder in TotalCommander: Image: http://ishark.myphotos.cc/core/892947102473613478235c.jpg

May be a way to detect junctions and display the correct icon/overlay?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50475
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I have checked that now. The problem is that junctions do NOT have any overlay icons by default, neither on Windows XP, nor on Windows 2000. So if I just submitted the icon to the background load queue, you would simply get a normal folder icon with no overlay.

That's why I have implemented it as it is now: The junctions are always shown with the big arrow to make it clear that it's a junction. The load of a special icon and overlay is tried only when the junction has the read only, hidden, or system attribute.
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
The load of a special icon and overlay is tried only when the junction has the read only, hidden, or system attribute.
Mh it might be a good idea to check the FILE_ATTRIBUTE_REPARSE_POINT attribute. What do you think?

http://msdn2.microsoft.com/en-us/library/aa364944.aspx
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50475
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Sorry but you didn't get my point. I DO check this, and if present, show the large arrow icon. I do not try to load any overlay icons because there is NO overlay by default for junctions on Windows XP/2000!
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9536
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Why not do the same as in the separate tree?
Or in other words - just try to load an overlay. I don't see why this should be a problem.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50475
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

In the separate tree I get all the icons. So the normal user will get a folder icon without any overlay for junctions, so he cannot distinguish it from a normal folder except when he has a special Explorer extension installed.
Or in other words - just try to load an overlay. I don't see why this should be a problem.
Because this happens in a completely different location (a background thread!) than the location where the icons are initially loaded. I'm not loading overlays in the foreground because it's dead-slow for some types of overlays.

So at the moment when I see the junction, I cannot check whether it has an overlay because it would be too slow. But when I queue it for loading icons in the background thread, and it turns out to have no overlay, it would display the standard folder icon and the user wouldn't know that it's a junction.
Author of Total Commander
https://www.ghisler.com
Post Reply