http://bugs.winehq.org/show_bug.cgi?id=10531
Summary: Windows Calculator: Color in buttons missing Product: Wine Version: 0.9.49. Platform: Other OS/Version: other Status: UNCONFIRMED Severity: minor Priority: P2 Component: wine-misc AssignedTo: wine-bugs@winehq.org ReportedBy: bammzilla@gabriana.com
Created an attachment (id=9282) --> (http://bugs.winehq.org/attachment.cgi?id=9282) How it looks in my Windows XP box
In Windows Calculator CALC.EXE the button texts should be color coded but all appear black in Wine.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #1 from Bamm Gabriana bammzilla@gabriana.com 2007-11-22 05:20:24 --- Created an attachment (id=9283) --> (http://bugs.winehq.org/attachment.cgi?id=9283) How it looks in Wine
Wine doesn't show colors in button text.
http://bugs.winehq.org/show_bug.cgi?id=10531
Alexander Nicolaysen Sørnes alex@thehandofagony.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alex@thehandofagony.com Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #2 from Alexander Nicolaysen Sørnes alex@thehandofagony.com 2007-11-22 13:56:49 --- Confirming. Does not happen with win98se calc.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #3 from Andre Wisplinghoff andre.wisplinghoff@gmail.com 2008-02-06 08:31:32 --- Created an attachment (id=10636) --> (http://bugs.winehq.org/attachment.cgi?id=10636) Calc from Windows 98 without wine-drawn buttons
I commented out the PB_Paint function to test for owner-drawn Buttons. Calc from Win98 handels button painting itself, doesn't make a difference.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #4 from Andre Wisplinghoff andre.wisplinghoff@gmail.com 2008-02-06 08:34:31 --- Created an attachment (id=10637) --> (http://bugs.winehq.org/attachment.cgi?id=10637) Calc from XP withouth wine-drawn buttons
When trying XP calc with the same change, the buttons dissappear. I am not sure if there is a way to get colored buttons without drawing the button yourself? As far as I know this isn't possible in Windows GDI.
http://bugs.winehq.org/show_bug.cgi?id=10531
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #5 from Anastasius Focht focht@gmx.net 2008-02-06 15:08:37 --- Hello,
well it's simple ... wine's button control lacks NM_CUSTOMDRAW notification support.
The BS_OWNERDRAWN style might have worked for Win9X but not for Windows XP - it's handled differently (assuming comctl32 ver >= 6). XP controls use WM_NOTIFY -> NM_CUSTOMDRAW notifications (sent to the parent) for that purpose. Use some windows/message spy to observe the behaviour (calc returns CDRF_SKIPDEFAULT to indicate it draws the entire item by itself).
See:
http://msdn2.microsoft.com/en-us/library/bb761847(VS.85).aspx http://msdn2.microsoft.com/en-us/library/bb761817(VS.85).aspx
for further information.
Implement custom draw notification messages and you will coloured buttons.
Regards
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #6 from Bamm Gabriana bammzilla@gabriana.com 2008-02-09 05:49:47 ---
well it's simple ... wine's button control lacks NM_CUSTOMDRAW notification support.
Implement custom draw notification messages and you will coloured buttons.
May I know which dll I should copy over and set as native to have this NM_CUSTOMDRAW notification messages support?
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #7 from Anastasius Focht focht@gmx.net 2008-02-09 06:41:55 --- Hello,
although certain ui controls are implemented in comctl32.dll one cannot expect them to work exactly as in windows by just replacing builtin with native dll. If you replace one part you obviously need to replace other integral parts of wine too, which isn't feasible. The combination of builtin and native dlls doesn't resemble windows in all aspects, e.g. inter-module interactions might be different due to implementation details (call sequences, messages/order of messages sent and the like).
In short: there is no simple "native override" fix.
Regards
http://bugs.winehq.org/show_bug.cgi?id=10531
Andre Wisplinghoff andre.wisplinghoff@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |andre.wisplinghoff@gmail.com
--- Comment #8 from Andre Wisplinghoff andre.wisplinghoff@gmail.com 2008-02-11 18:17:23 --- Thanks a lot, Anastasius, I tried what you suggested and it's working. I'll try to make make up a nice patch (don't have that much experience yet.)
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #9 from Andre Wisplinghoff andre.wisplinghoff@gmail.com 2008-02-17 17:02:56 --- OK, I've got the patch ready, so far.
However in my opinion MSDN documentation isn't entirely correct. WinXP Calc sends CDRF_SKIPDEFAULT in response to the CDDS_PREPAINT notification. According to the documentation this means that the control should not do any drawing at all. But: I tried it like that and the result was, that there was colored text without the surroundings of buttons (frame etc).
So in my current implementation the button sends CDDS_PREPAINT after the frame was drawn, but before the label is drawn. If CDRF_SKIPDEFAULT is send in response, the label isn't drawn by the control.
If somebody has an explanation for this other than MSDN being incorrect, please let me know. Otherwise I'm going to send in the patch on Tuesday.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #10 from Dmitry Timoshkov dmitry@codeweavers.com 2008-02-17 22:56:00 ---
So in my current implementation the button sends CDDS_PREPAINT after the frame was drawn, but before the label is drawn. If CDRF_SKIPDEFAULT is send in response, the label isn't drawn by the control.
There are 3 phases of painting: 1. non-client area (WM_NCPAINT) - caption, border 2. background (WM_ERASEBKGND) 3. client area (WM_PAINT)
You need to add a test case to dlls/user32/tests/msg.c to make sure that your patch is correct.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #11 from Dmitry Timoshkov dmitry@codeweavers.com 2008-02-17 22:59:28 --- Also MSDN mentions that WM_NOTIFY/NM_CUSTOMDRAW notification is sent only to an application with appropriate manifest, and WM_DRAWITEM otherwise. So, manifests must be handled by your patch.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #12 from Austin English austinenglish@gmail.com 2008-06-16 17:02:01 --- Is this still an issue in current (1.0-rc5 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #13 from Bamm Gabriana bammzilla@gabriana.com 2008-06-22 00:45:02 ---
Is this still an issue in current (1.0-rc5 or newer) wine?
Still present in Wine 1.0.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #14 from Austin English austinenglish@gmail.com 2008-12-23 07:01:01 --- Is this still an issue in current (1.1.11 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=10531
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com
--- Comment #15 from Dan Kegel dank@kegel.com 2009-02-10 03:27:45 --- Andre, did you say you had a patch?
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #16 from Andre Wisplinghoff andre.wisplinghoff@gmail.com 2009-02-10 17:59:11 --- Hi, I don't have it anymore and I think, reading the other comments again, it was wrong anyway (only showing the correct result). It also didn't have a testcase and no manifest handling. Somebody else will have to implement it properly.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #17 from Austin English austinenglish@gmail.com 2009-08-13 12:58:39 --- Is this still an issue in current (1.1.27 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=10531
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |comctl32
--- Comment #18 from Nikolay Sivov bunglehead@gmail.com 2009-12-29 15:46:19 --- Cause native comctl32 takes care of buttons itself this is a common controls bug, but class redirection should be implemented first for this to work as it should.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #19 from Austin English austinenglish@gmail.com 2011-03-29 19:29:53 CDT --- This is your friendly reminder that there has been no bug activity for 6 months. Is this still an issue in current (1.3.16 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=10531
Carlo Bramini carlo.bramix@libero.it changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |carlo.bramix@libero.it
--- Comment #20 from Carlo Bramini carlo.bramix@libero.it 2011-04-26 12:26:32 CDT --- This bug is still valid. Tested XP Calculator on Ubuntu 10.04 and WINE-1.3.17
http://bugs.winehq.org/show_bug.cgi?id=10531
Ruslan Kabatsayev b7.10110111@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |b7.10110111@gmail.com
--- Comment #21 from Ruslan Kabatsayev b7.10110111@gmail.com 2013-07-04 09:34:47 CDT --- Strangely, the bug is still present with wine-1.6-rc4-22-g2d0653e.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #22 from Nikolay Sivov bunglehead@gmail.com 2013-07-04 10:11:35 CDT --- (In reply to comment #21)
Strangely, the bug is still present with wine-1.6-rc4-22-g2d0653e.
There was no attempt yet to duplicate builtin controls in comctl32, in other words class redirection is not implemented, so it obviously doesn't work.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #23 from Bamm Gabriana bammzilla@astronomy.com.ph 2013-07-04 20:23:59 CDT --- So what needs to be done in order to implement this?
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #24 from Nikolay Sivov bunglehead@gmail.com 2013-07-04 22:47:40 CDT --- Some loader magic is needed, when manifest is found it should load specified module and register all classes mentioned in manifest with this module using RegisterClassNameW call. Last time I tried to make a reliable test for that I lost a battle with activation contexts as I remember. I should probably try again eventually.
http://bugs.winehq.org/show_bug.cgi?id=10531
Qian Hong fracting@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fracting@gmail.com
--- Comment #25 from Qian Hong fracting@gmail.com 2013-07-05 03:06:21 CDT --- (In reply to comment #24)
Some loader magic is needed, when manifest is found it should load specified module and register all classes mentioned in manifest with this module using RegisterClassNameW call. Last time I tried to make a reliable test for that I lost a battle with activation contexts as I remember. I should probably try again eventually.
Interesting, is the loader magic you mentioned related to Bug 25340?
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #26 from Nikolay Sivov bunglehead@gmail.com 2013-07-05 03:52:01 CDT --- No, this is different, but supplied with manifest resource/file too. I tested it again just now and it's probably easier than I thought - it doesn't register everything on load but on first class use with CreateWindow(). That means user32 has to check for current (or not only current?) context data and then override registration with RegisterClassNameW, another thing is that it probably alters context to mark class are re-registered, cause this function is called only once.
http://bugs.winehq.org/show_bug.cgi?id=10531
Frédéric Delanoy frederic.delanoy@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |frederic.delanoy@gmail.com
--- Comment #27 from Frédéric Delanoy frederic.delanoy@gmail.com --- Is this still an issue in latest wine (1.7.16 or later)?
I couldn't find any downloadable version of XP calculator.
http://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #28 from Nikolay Sivov bunglehead@gmail.com --- (In reply to Frédéric Delanoy from comment #27)
Is this still an issue in latest wine (1.7.16 or later)?
Yes.
I couldn't find any downloadable version of XP calculator.
I don't think it exist, unless it was updated with some SP.
https://bugs.winehq.org/show_bug.cgi?id=10531
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com Hardware|Other |x86 OS|other |Linux
--- Comment #29 from Austin English austinenglish@gmail.com --- (In reply to Nikolay Sivov from comment #28)
(In reply to Frédéric Delanoy from comment #27)
Is this still an issue in latest wine (1.7.16 or later)?
Yes.
I couldn't find any downloadable version of XP calculator.
I don't think it exist, unless it was updated with some SP.
It was updated in win7sp1, but it doesn't work for me in wine-1.7.51-23-g07cc9a3 (silently exits). There's https://www.microsoft.com/en-us/download/details.aspx?id=21622, but it has different graphics.
https://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #30 from Frédéric Delanoy frederic.delanoy@gmail.com --- Still in 1.9.0 (tested with WinXP calc)
https://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #31 from Ruslan Kabatsayev b7.10110111@gmail.com --- Still present in wine-2.15-74-g083e61f with WinXP calc.
https://bugs.winehq.org/show_bug.cgi?id=10531
Gabriel Ivăncescu gabrielopcode@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |4b85740ebf94a05aafb8e6c55c3 | |b5a2826ac2b69 Status|NEW |RESOLVED CC| |gabrielopcode@gmail.com Resolution|--- |FIXED
--- Comment #32 from Gabriel Ivăncescu gabrielopcode@gmail.com --- Fixed by 4b85740ebf94a05aafb8e6c55c3b5a2826ac2b69 and related patch series.
https://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #33 from Ruslan Kabatsayev b7.10110111@gmail.com --- Great! Confirming that it's fixed.
https://bugs.winehq.org/show_bug.cgi?id=10531
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #34 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.4.
https://bugs.winehq.org/show_bug.cgi?id=10531
--- Comment #35 from Anastasius Focht focht@gmx.net --- *** Bug 31572 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=10531
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |https://web.archive.org/web | |/20121010054136if_/http://c | |dn.superantispyware.com/SUP | |ERAntiSpyware.exe Summary|Windows Calculator: Color |Multiple applications lack |in buttons missing |text and/or color on | |buttons (missing | |NM_CUSTOMDRAW | |support)(Windows | |Calculator, | |SUPERAntiSpyware) Severity|minor |normal
https://bugs.winehq.org/show_bug.cgi?id=10531
Robert Junior junior@tyincoming.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |junior@tyincoming.com
--- Comment #36 from Robert Junior junior@tyincoming.com --- Fixed by 4b85740ebf94a05aafb8e6c55c3b5a2826ac2b69 and related patch series. https://emp3juice.blog/id/ - https://y2mate.diy/ - https://tubidy.diy/top-videos/