... has not yet passed, it seems!
Lo and behold, I managed to get Trillian to work past the splash screen. A bit early for a christmas miracle, but there it is :-).
This is, as far as I know, the first time anyone has gotten Trillian to run with Wine CVS since late 2004. That's about two years for you.
It also marks another historic event: This is the first time in my life that I've ever rejoiced upon hearing one of those lame application startup sounds ;-).
This is the diff against wine 0.9:
Index: dlls/user/winpos.c =================================================================== --- dlls/user/winpos.c (revision 23257) +++ dlls/user/winpos.c (working copy) @@ -808,9 +808,14 @@ MinMax.ptMaxTrackSize.y = max( MinMax.ptMaxTrackSize.y, MinMax.ptMinTrackSize.y );
+ return; + // commenting next line out WILL fix Trillian. if (maxSize) *maxSize = MinMax.ptMaxSize; + // commenting next line out doesn't fix. if (maxPos) *maxPos = MinMax.ptMaxPosition; + // commenting next line out WILL fix Trillian. if (minTrack) *minTrack = MinMax.ptMinTrackSize; + // commenting next line out doesn't fix. if (maxTrack) *maxTrack = MinMax.ptMaxTrackSize; }
The patch (also attached btw) should be self explanatory.
Basically it just returns a bit earlier in WINPOS_GetMinMaxInfo.
Obviously, WINPOS_GetMinMaxInfo is fucked, but I'm not sure how or why.
I'd like it if any of the experts could step in here, so we can: * close bug 2658 and * open a new one about why the contact list window stays hidden ;).
Questions (please help!): 1. Is it correct to just stop mucking about with the application's 4 variables as done above? Will that break other things?
2. How can I test the behaviour on Windows? (I've finally gotten VMWare to run on 2.6.14 - joy =))
- Is it correct to just stop mucking about with the application's 4
variables as done above?
I just had a brief chat with Javi S. Pedro (reporter of this bug). It wasn't clear from his original description which version of Wine he previously used to test Trillian. He seems to remember using the version recommended by WineTools, which currently is 20041019.
Which means that it's probably the windowing system rewrite that Alexandre Julliard did that broke things.
Patching winpos.c to not touch those 4 variables does not seem to cause any other regressions (as far as I can see), so my immediate thought is that this is the right and correct thing to do.
I'd like it if any of the experts could step in here, so we can:
- close bug 2658 and
- open a new one about why the contact list window stays hidden ;).
The bug has 5 cc'ers and 21 votes, which makes it mildly popular. Would be nice to have it fixed. Can anyone comment on my approach in the patch?
- How can I test the behaviour on Windows?
I still don't code C, so if anyone could step in with pointers, that'd be great.
"Molle Bestefich" molle.bestefich@gmail.com wrote:
Patching winpos.c to not touch those 4 variables does not seem to cause any other regressions (as far as I can see), so my immediate thought is that this is the right and correct thing to do.
No, that's not right and not correct, you haven't even shown or investigated real windows behaviour, or a test case.
Dmitry Timoshkov wrote:
Molle Bestefich wrote:
Patching winpos.c to not touch those 4 variables does not seem to cause any other regressions (as far as I can see), so my immediate thought is that this is the right and correct thing to do.
No, that's not right and not correct, you haven't even shown or investigated real windows behaviour, or a test case.
Sure I have. Trillian starts correctly with the patch, as well as under Windows. Also googling indicated that Windows does not change those variables. I don't have an URL ready, sorry. That's *some* evidence, although it's not exactly fool-proof.
OTOH, there's absolutely no evidence that it's wrong.
So so far it does seem to be right / correct, as far as I can see.
I realize that you're criticizing my approach and not the patch. I'd like to produce a test case to be 100% sure and show you that it's correct - but I'll need some pointers or URLs/google keywords to code examples. If you can help, please do..