<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
I previously posted this issue on the users group but it went
unanswered:
<a class="moz-txt-link-freetext" href="http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2448226">http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2448226</a><br>
<br>
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.<br>
<br>
A quick glance at my ShellIconOverlayIdentifiers key and a bit of basic
math shows:<br>
<ul>
<li>1-9 TortoiseSVN stuff</li>
<li>EnhanceStorageShell</li>
<li>Offline Files</li>
<li>SharingPrivate<br>
</li>
</ul>
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 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. <br>
<br>
The problem, I think, can be found in this chart from IconOverlay.cpp:<br>
// * shortcut (arrow) (not listed)<br>
// * shared (hand) (listed)<br>
// * UAC (shield) (not listed)<br>
// * Offline (not listed)<br>
<br>
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:<br>
<br>
// The following overlays must be accounted for but are not listed
under ShellIconOverlayIdentifiers:<br>
// * Shortcut arrow<br>
// * Shared Hand (Windows XP only)<br>
// * UAC shield (Windows Vista+ only)<br>
<br>
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.<br>
<br>
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:
<a class="moz-txt-link-freetext" href="http://en.wikipedia.org/wiki/Features_removed_from_Windows_7">http://en.wikipedia.org/wiki/Features_removed_from_Windows_7</a><br>
<pre class="moz-signature" cols="72">--
- Valik</pre>
</body>
</html>
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2456423
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2010-03-08 10:58:17 CET