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.
> 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?
More information about the wine-devel