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

Re: tsvn 1.6.5+ part of overlay icons missing on Win7 x64

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Fri, 13 Nov 2009 23:10:31 +0100

Robert Roessler wrote:
> Stefan Küng wrote:
>> Robert Roessler wrote:
>>> Stefan Küng wrote:
>>>> Can you try again now with the modified version:
>>>> http://tortoisesvn.tigris.org/svn/tortoisesvn/TortoiseOverlays/testbin/
>>>>
>>>> (or just wait for the next nightly build).
>>> Thanks, Stefan!
>>>
>>> With your TortoiseOverlays.dll 1.0.10.17690 installed over the TSVN
>>> 1.6.4 release, everything works the same as it was with just 1.6.4 +
>>> TCVS 1.11.3... so this means that if I install a nightly (starting with
>>> the next one), I should see the same thing with 1.6.6+?
>> Yes, I'll merge those changes back to the 1.6.x branch soon.
>>
>>> Note that it is only working as well as it WAS... I can only really see
>>> that Normal, Modified, and Conflicted overlays work. And, e.g., Ignored
>>> (and I think Unversioned), do NOT work. But the ones the DO work are
>>> the main ones I care about... ;)
>> The first overlay to go (i.e., to not be used/shown) is the
>> 'unversioned' one, then the ignored, locked and added overlay.
>>
>> As you know, there are 15 possible overlay slots. On Vista/Win7, four of
>> them are already used by the shell itself:
>> * shortcut (arrow)
>> * shared folders (hand)
>> * UAC (shield)
>> * offline
>>
>> So there are only 11 overlay slots available for TSVN and other overlay
>> handlers to use.
>>
>> The problem you got on x64 is that Windows loads the overlay handlers in
>> an unknown order (not documented), and x64 seems to be loading them in a
>> different order than x86. So x64 loads the overlays until all slots are
>> filled, but the 'normal' overlay didn't get loaded because when it came
>> to that overlay handler, all the slots were already filled. x86 loads in
>> a different order, so an 'unimportant' handler of TSVN was not loaded
>> and nobody noticed.
>>
>> I've changed the Overlays component now so that it prevents the
>> 'unimportant' overlays from getting loaded if it finds that there
>> wouldn't be enough slots available for all the important ones.
>>
>> Right now, the unversioned overlay isn't loaded if there are 10 or more
>> entries under
>> Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellIconOverlayIdentifiers
>> since the shells own overlay handlers don't seem to be listed there.
>>
>> I'll change this a little bit (but not today anymore) so that the
>> 'added' overlay will go first - I think showing the 'modified' overlay
>> for added files wouldn't be so bad.
>>
>> Also I've noticed that at least the 'offline' overlay handler is
>> registered under that registry key so I can increase the cut-off limit
>> by one.
>
> This is great, Stefan - it sounds like you have this thing nailed.
>
> One thing *I* don't understand is, if my overlay set of choice
> ("XPStyle") has only NINE icon images, why is there a "shortage of
> slots" issue at all (with 9 < 11 etc)?
>
> Or is the shortage because of OTHER software that I have installed?

Just open regedt32, go to
HKLM\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellIconOverlayIdentifiers
and see how many other overlay handlers you have installed there.
And the first handler is skipped if there are 10 or more installed, not
nine. So you can have one other handler installed and you would still
get all TSVN overlays. But if you have two or more other handlers, then
TSVN won't load the 'unimportant' ones.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2417779
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-11-13 23:09:55 CET

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