TreeView notifications fix

Dimitrie O. Paun dimi at intelliware.ca
Mon Mar 17 09:22:41 CST 2003


On 17 Mar 2003, Mike Hearn wrote:

> And yes, I found that this morning as well :) At least in WinAmp,
> changing it to ansi seems to fix it....

You mean just making the if() be trivially true?

> > In Feb 2003, Drew "DanteAliegri" Ogle <dantealiegri at umbc.edu>
> > started looking into this problem, and I told him the story.
> 
> Which he repeated to me on IRC on sunday (so big thanks to dante)

Indeed -- a big thanks indeed.

> This bit confuses me... what do you mean by actually sent? As in,
> actually sent on Windows?

Yes, that's my understading. You can just download the executables
and run them yourself on Windows, see what you get.

> At least one issue seems to be that the NOTIFYFORMAT message returns
> different results under Wine and Win2K, on Windows the WinAmp prefs
> dialog wants ANSI, on Wine it wants Unicode. So perhaps the bug is
> actually in the way Wine determines whether a dialog is ansi/unicode,
> and the treeview (and winamp) are both correct?

That's my intuition as well, but we need to test it on Windows.

> Well, I changed treeview.c to use get_notifycode (ie it's doing the
> right thing). That breaks WinAmp, probably trillian and putty too.

What do you mean? It was already using get_notifycode, no changes
are needed, AFAIK. What exaclty did you change?

> The test cases now work OK, and give expected results. They give
> expected results on Win2K Terminal Server edition as well.

Cool.

> So it looks like the treeview component isn't buggy on Windows, it does
> send Unicode when it's asked to.

Can you also look to duplicate the tests for the listview as well?
That stange behaviour for listview bothers me greatly.

> That just makes me even more suspicious of the strangely morphing
> WM_NOTIFYFORMAT result. I tried finding which API call created the prefs
> dialog in WinAmp in a logger trace on XP, but couldn't, which confused
> the hell out of me, in Wine it appears as a CreateWindowExW (strangely,
> the others are CreateWindowExA) - BUT it doesn't appear in a relay trace
> and it doesn't seem to be loaded via GetProcAddress :(
> 
> So I think IsWindowUnicode is giving a "wrong" result on Wine. But I
> don't know where to look next.

Why "you think"? It seems you actually see it give the wrong result, no? 

-- 
Dimi.




More information about the wine-devel mailing list