I had discovered a bug with Quicken 2005 where certain graphics aren't being drawn on screen, depending on whether the application is using W98 or W2k "emulation".
The behavior actually changed (from works in W98 but broken in W2k to works in W2k but broken in W98) at some point in time. After some tedius recompiling and testing (hey, I'm new to wine!) I discovered the behavior swap was due to a CVS commit to dlls\user\misc.c on 29 September 2005.
Something to do with the display name being unicode DISPLAY vs. \.\DISPLAY1 (which seems to be the first display name for Windows).
I just sent a proposed patch to fix this bug, but thought I would also ask on this list to make sure I haven't done anything stupid (which I probably have). Basically, there were several files that declare static constants for a display name - I globally search & replaced all DISPLAY with \.\DISPLAY1 where it seemed to make sense, but hopefully others will have an opinion here.
Tim
Tim Martin wrote:
I had discovered a bug with Quicken 2005 where certain graphics aren't being drawn on screen, depending on whether the application is using W98 or W2k "emulation".
The behavior actually changed (from works in W98 but broken in W2k to works in W2k but broken in W98) at some point in time. After some tedius recompiling and testing (hey, I'm new to wine!) I discovered the behavior swap was due to a CVS commit to dlls\user\misc.c on 29 September 2005.
Something to do with the display name being unicode DISPLAY vs. \.\DISPLAY1 (which seems to be the first display name for Windows).
I just sent a proposed patch to fix this bug, but thought I would also ask on this list to make sure I haven't done anything stupid (which I probably have). Basically, there were several files that declare static constants for a display name - I globally search & replaced all DISPLAY with \.\DISPLAY1 where it seemed to make sense, but hopefully others will have an opinion here.
I think the attached patch should also fix the problem you are seeing.
I think we need a more tests and a better architecutre architecture before we should start using \.\DISPLAY1. I have a hunch, but haven't tested it, that DISPLAY should still work even on NT.
Actually, I tried the idea in your patch (use DISPLAY everywhere, so just patch misc.c back to DISPLAY instead of patching all the other files forward to \.\DISPLAY1). For Quicken 2005, it works fine in W98 mode, but doesn't work in W2k mode.
I don't know if this is a bug in quicken itself or not. It could be that certain applications just assume the first display in W2k is \.\DISPLAY1 and break otherwise...
Unfortunately also, I don't have a good understanding of what instances Wine is using the display name for. In my patch, I globally search & replaced all instances of "DISPLAY" and then also all instances of "display". I think the "DISPLAY" one was right, but I was noticing some other bugs this morning that may be related to changing _too much_. Will do some more testing this weekend.
--- Robert Shearman rob@codeweavers.com wrote:
Tim Martin wrote:
I had discovered a bug with Quicken 2005 where
certain
graphics aren't being drawn on screen, depending on whether the application is using W98 or W2k "emulation".
The behavior actually changed (from works in W98
but
broken in W2k to works in W2k but broken in W98) at some point in time. After some tedius recompiling
and
testing (hey, I'm new to wine!) I discovered the behavior swap was due to a CVS commit to dlls\user\misc.c on 29 September 2005.
Something to do with the display name being unicode DISPLAY vs. \.\DISPLAY1 (which seems to be the
first
display name for Windows).
I just sent a proposed patch to fix this bug, but thought I would also ask on this list to make sure
I
haven't done anything stupid (which I probably
have).
Basically, there were several files that declare static constants for a display name - I globally search & replaced all DISPLAY with \.\DISPLAY1
where
it seemed to make sense, but hopefully others will have an opinion here.
I think the attached patch should also fix the problem you are seeing.
I think we need a more tests and a better architecutre architecture before we should start using \.\DISPLAY1. I have a hunch, but haven't tested it, that DISPLAY should still work even on NT.
-- Rob Shearman
Index: dlls/user/misc.c
===================================================================
RCS file: /home/wine/wine/dlls/user/misc.c,v retrieving revision 1.28 diff -u -p -r1.28 misc.c --- dlls/user/misc.c 3 Oct 2005 10:17:05 -0000 1.28 +++ dlls/user/misc.c 4 Nov 2005 21:22:52 -0000 @@ -272,7 +272,7 @@ DWORD WINAPI SetLogonNotifyWindow(HWINST return 1; }
-static const WCHAR primary_device_name[] =
{'\','\','.','\','D','I','S','P','L','A','Y','1',0};
+static const WCHAR primary_device_name[] = {'D','I','S','P','L','A','Y',0}; static const WCHAR primary_device_string[] = {'X','1','1',' ','W','i','n','d','o','w','i','n','g',' ',
'S','y','s','t','e','m',0};