[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Not all overlays appear on Windows 7 with TSVN 1.6.7+

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Mon, 08 Mar 2010 21:39:40 +0100

On 08.03.2010 20:36, Valik wrote:
> On Mar 8, 6:35 am, Simon Large<simon.tortoise..._at_googlemail.com>
> wrote:
>> [snip unreadable content]
>
> I think calling it unreadable is a bit of a stretch but whatever.
> Here's the plain-text version:
>
> I previously posted this issue on the users group but it went
> unanswered: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2448226
>
> To recap, the issue is TSVN 1.6.7 and later (nightlies included) do
> not show the Ignored and Unversioned overlays on Windows 7 (32-bit).
> TSVN 1.6.6 works just fine. I checked the revision range between TSVN
> 1.6.6. and 1.6.7 and found a few commits that modify the code related
> to the overlay count. I think the code is wrong and is needlessly
> limiting the icons when there should be more than enough available
> overlay slots.
>
> A quick glance at my ShellIconOverlayIdentifiers key and a bit of
> basic math shows:
>
> * 1-9 TortoiseSVN stuff
> * EnhanceStorageShell
> * Offline Files
> * SharingPrivate
>
> That's a total of 12 overlays registered. When you add in the
> shortcut arrow and UAC shield overlays that brings the total up to
> 14. The TSVN documentation claims Windows has space for 15 icons. So

Not quite correct. One slot is reserved, at least it is up to XP.
Haven't tested on Vista/Win7. From what I've heard, the reserved slot is
can't be used due to some compatibility issue.

> on Windows 7 with no other overlay tools installed I should be seeing
> all 9 TSVN overlays and 5 pre-installed Windows overlays with room for
> 1 more overlay. However, TSVN itself is coded to check and drop the
> Unversioned overlay if there are more than 10 handlers in the
> registry. It drops the Ignored overlay if there are 11 handlers in
> the registry. Obviously the 12 that I have registered are causing
> these two to be dropped.
>
> The problem, I think, can be found in this chart from IconOverlay.cpp:
> // * shortcut (arrow) (not listed)
> // * shared (hand) (listed)
> // * UAC (shield) (not listed)
> // * Offline (not listed)
>
> There are a few things wrong with the chart. First, Offline Files is
> listed under ShellIconOverlayIdentifiers on Windows XP and Windows 7
> (the chart claims it is not listed). Second, the Shared hand icon is
> not listed under Windows XP (your chart says that it is listed). More
> importantly, the shared hand icon isn't present at all on Windows 7 so
> it should not be counted for Windows 7. As far as I can ascertain
> both Windows 7 and Windows XP contain only two "secret" overlays.
> Both contain the shortcut arrow overlay and Windows XP contains the
> Shared Hand where-as Windows 7 contains the UAC shield. I think for
> maximum clarity your chart should be this:
>
> // The following overlays must be accounted for but are not listed
> under ShellIconOverlayIdentifiers:
> // * Shortcut arrow
> // * Shared Hand (Windows XP only)
> // * UAC shield (Windows Vista+ only)
>
> I think your intent is to use no more than 14 overlays between what
> Windows has pre-loaded and the 9 for TSVN. If that is the case, then
> it's simply a matter of changing nOverlayLimit to 12 for Windows 7 and
> Windows XP. If each version of Windows only contains 2 "secret"
> overlays then there are 13 slots available under
> ShellIconOverlayIdentifiers. Assuming the intent is to leave 1 unused
> slot then that leaves 15 - 2 (secret) - 1 (unused) = 12 overlays TSVN
> can use. The pre-registered overlays should not be factored into this
> calculation because GetInstalledOverlays() will count them. On
> Windows 7 GetInstalledOverlays() should return 12 on a virgin install
> with just TSVN installed. On Windows XP it should return 10. If
> nOverlayLimit is adjusted to 12 for both Windows XP and Windows 7 then
> all icons should show up on virgin installations containing nothing
> but TSVN.
>
> All my comments are based upon what I know and understand about
> Windows XP and Windows 7. I do not know about Windows Vista (I
> suspect it contains 3 "secret" overlays, shortcuts, UAC and shared
> hand). I have checked the ShellIconOverlayIdentifiers key on both
> Windows 7 32-bit and Windows XP 32-bit and have performed my
> calculations based on what I found there. My information about the
> "secret" non-listed overlays comes from experience, TSVN documentation
> and the TSVN source code (the chart above). Wikipedia mentions (and
> more importantly cites) the shared hand icon removal from Windows 7:
> http://en.wikipedia.org/wiki/Features_removed_from_Windows_7

I'll have a closer look at this tomorrow.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2456683
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2010-03-08 21:39:49 CET

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.