https://bugs.winehq.org/show_bug.cgi?id=46947
Bug ID: 46947 Summary: Loxone Config works but some text is missing. Product: Wine Version: 4.5 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: j.echter@gmx.de Distribution: ---
Created attachment 64069 --> https://bugs.winehq.org/attachment.cgi?id=64069 screenshot of the problem.
Program installs fine and runs, but some text is not visible in some checkboxes. see screenshot
download link for the tool: https://www.loxone.com/dede/produkte/loxone-config/
https://bugs.winehq.org/show_bug.cgi?id=46947
--- Comment #1 from j.echter@gmx.de --- Created attachment 64070 --> https://bugs.winehq.org/attachment.cgi?id=64070 this is the outpout fro mthe console if i start the program vial cli
https://bugs.winehq.org/show_bug.cgi?id=46947
--- Comment #2 from j.echter@gmx.de --- this is the direct download link:
https://www.loxone.com/dede/wp-content/uploads/sites/2/2019/03/LoxoneConfigS...
https://bugs.winehq.org/show_bug.cgi?id=46947
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox.xerox2000x@gmail.com URL| |https://www.loxone.com/dede | |/wp-content/uploads/sites/2 | |/2019/03/LoxoneConfigSetup_ | |10020326.exe_.zip Keywords| |download
--- Comment #3 from Louis Lenders xerox.xerox2000x@gmail.com --- Hi,
I guess you already tried ``winetricks corefonts``? If not, could you rty.
Also can you provide a sample project and/or instructions how to reproduce this?
I just clicked through a few windows but did`nt get that window you show in screenshot; I guess one has to load a project for that???
https://bugs.winehq.org/show_bug.cgi?id=46947
--- Comment #4 from j.echter@gmx.de --- Created attachment 64075 --> https://bugs.winehq.org/attachment.cgi?id=64075 A Loxone roject for test purposes
Hi Louis,
i already had corefonts installed, i attached a test project where this also happens.
https://bugs.winehq.org/show_bug.cgi?id=46947
--- Comment #5 from Louis Lenders xerox.xerox2000x@gmail.com --- Created attachment 64077 --> https://bugs.winehq.org/attachment.cgi?id=64077 screenshot with native gdiplus
Hi,
Does ``winetricks gdiplus`` change anything? I can see some bold text now, that text was missing? Could you try? Thanks in advance for reporting back
https://bugs.winehq.org/show_bug.cgi?id=46947
--- Comment #6 from j.echter@gmx.de --- Hi Louis,
this seems to have fixed it. Thanks a lot.
Only thing, the boxes where the text was missing are red, those are not red under windows, but this doesn't matter for us.
https://bugs.winehq.org/show_bug.cgi?id=46947
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|-unknown |gdiplus Summary|Loxone Config works but |Loxone Config :bold text is |some text is missing. |missing with builtin | |gdiplus Ever confirmed|0 |1
--- Comment #7 from Louis Lenders xerox.xerox2000x@gmail.com --- ok, thanks for reporting back.
Edit title
sha1sum /media/louis/aqqa/LoxoneConfigSetup_10020326.exe_.zip a8419427e47195f7d3c259f440b6be77076d6041 /media/louis/aqqa/LoxoneConfigSetup_10020326.exe_.zip
https://bugs.winehq.org/show_bug.cgi?id=46947
Bartosz gang65@poczta.onet.pl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gang65@poczta.onet.pl
--- Comment #8 from Bartosz gang65@poczta.onet.pl --- Output from running testing project with trace+gdiplus for "Kontakt" string:
0024:trace:gdiplus:GdipDeleteBrush (039C6FC0) 0024:trace:gdiplus:GdipMeasureString (039D7430, L"Kontakt", 7, 039D7340, (3168.00,3079.00,0.00,0.00), 00000000, 0115D080, 00000000, 00000000) 0024:trace:gdiplus:GdipSetMatrixElements (0115CF58, 1.00, 0.00, 0.00, 1.00, 0.00, 0.00) 0024:trace:gdiplus:GdipMultiplyMatrix (0115CF58, 039D7474, 1) 0024:trace:gdiplus:GdipScaleMatrix (0115CF58, 1.00, 1.00, 1) 0024:trace:gdiplus:GdipMultiplyMatrix (0115CF58, 039D74B4, 1) 0024:trace:gdiplus:GdipTransformMatrixPoints (0115CF58, 0115D018, 3) 0024:trace:gdiplus:GdipSetMatrixElements (0115CE58, 1.00, 0.00, 0.00, 1.00, 0.00, 0.00) 0024:trace:gdiplus:GdipMultiplyMatrix (0115CE58, 039D7474, 1) 0024:trace:gdiplus:GdipScaleMatrix (0115CE58, 1.00, 1.00, 1) 0024:trace:gdiplus:GdipMultiplyMatrix (0115CE58, 039D74B4, 1) 0024:trace:gdiplus:GdipTransformMatrixPoints (0115CE58, 0115CED0, 3) 0024:trace:gdiplus:GdipCreateSolidFill (ff3d3d3d, 0115D07C) 0024:trace:gdiplus:GdipCreateSolidFill <-- 039C6FC0 0024:trace:gdiplus:GdipCreateStringFormat (0, 0, 0115D080) 0024:trace:gdiplus:GdipCreateStringFormat <-- 0394D7B8 0024:trace:gdiplus:GdipSetStringFormatAlign (0394D7B8, 0) 0024:trace:gdiplus:GdipSetStringFormatLineAlign (0394D7B8, 1) 0024:trace:gdiplus:GdipSetStringFormatHotkeyPrefix (0394D7B8, 0) 0024:trace:gdiplus:GdipSetStringFormatTrimming (0394D7B8, 3) 0024:trace:gdiplus:GdipSetStringFormatFlags (0394D7B8, 3000) 0024:trace:gdiplus:GdipDrawString (039D7430, L"Kontakt", 7, 039D7340, (3168.00,3079.00,1288.00,192.00), 0394D7B8, 039C6FC0) 0024:trace:gdiplus:GdipDrawString may be ignoring some format flags: attr 3000 0024:trace:gdiplus:GdipMeasureString (039D7430, L"Kontakt", 7, 039D7340, (3168.00,3079.00,1288.00,0.00), 0394D7B8, 0115CFD4, 00000000, 00000000) 0024:trace:gdiplus:GdipMeasureString may be ignoring some format flags: attr 3000 0024:trace:gdiplus:GdipSetMatrixElements (0115CDE8, 1.00, 0.00, 0.00, 1.00, 0.00, 0.00)
https://bugs.winehq.org/show_bug.cgi?id=46947
--- Comment #9 from Bartosz gang65@poczta.onet.pl --- Logs from string "Raum verlassen Kitchen _ Diner" which is displayed correctly:
0024:trace:gdiplus:GdipDeleteBrush (03A9F9D0) 0024:trace:gdiplus:GdipMeasureString (07767388, L"Raum verlassen Kitchen _ Diner", 30, 077675A0, (10176.00,1831.00,0.00,0.00), 00000000, 0115D600, 00000000, 00000000) 0024:trace:gdiplus:GdipSetMatrixElements (0115D4D8, 1.00, 0.00, 0.00, 1.00, 0.00, 0.00) 0024:trace:gdiplus:GdipMultiplyMatrix (0115D4D8, 077673CC, 1) 0024:trace:gdiplus:GdipScaleMatrix (0115D4D8, 1.00, 1.00, 1) 0024:trace:gdiplus:GdipMultiplyMatrix (0115D4D8, 0776740C, 1) 0024:trace:gdiplus:GdipTransformMatrixPoints (0115D4D8, 0115D598, 3) 0024:trace:gdiplus:GdipSetMatrixElements (0115D3D8, 1.00, 0.00, 0.00, 1.00, 0.00, 0.00) 0024:trace:gdiplus:GdipMultiplyMatrix (0115D3D8, 077673CC, 1) 0024:trace:gdiplus:GdipScaleMatrix (0115D3D8, 1.00, 1.00, 1) 0024:trace:gdiplus:GdipMultiplyMatrix (0115D3D8, 0776740C, 1) 0024:trace:gdiplus:GdipTransformMatrixPoints (0115D3D8, 0115D450, 3) 0024:trace:gdiplus:GdipDeleteFont (077675A0) 0024:trace:gdiplus:GdipCreateFontFamilyFromName L"Arial", 00000000 0115D560 0024:trace:gdiplus:GdipNewInstalledFontCollection (0115D54C) 0024:trace:gdiplus:GdipCloneFontFamily 0376CE00 (L"Arial"), 0115D560 0024:trace:gdiplus:GdipCreateFontFamilyFromName <-- 0376CE00 0024:trace:gdiplus:GdipCreateFont 0376CE00 (L"Arial"), 120.000000, 0, 0, 0115D5A4 0024:trace:gdiplus:GdipGetFamilyName 0376CE00, 0115D3F8, 0 0024:trace:gdiplus:GdipCloneFontFamily 0376CE00 (L"Arial"), 077674B0 0024:trace:gdiplus:GdipCreateFont <-- 077674B0 0024:trace:gdiplus:GdipCloneFont (077674B0, 0115D578) 0024:trace:gdiplus:GdipDeleteFont (077674B0) 0024:trace:gdiplus:GdipCreateSolidFill (ff3d3d3d, 0115D5FC) 0024:trace:gdiplus:GdipCreateSolidFill <-- 03A9F9D0 0024:trace:gdiplus:GdipCreateStringFormat (0, 0, 0115D600) 0024:trace:gdiplus:GdipCreateStringFormat <-- 03B44BE0 0024:trace:gdiplus:GdipSetStringFormatAlign (03B44BE0, 0) 0024:trace:gdiplus:GdipSetStringFormatLineAlign (03B44BE0, 1) 0024:trace:gdiplus:GdipSetStringFormatHotkeyPrefix (03B44BE0, 0) 0024:trace:gdiplus:GdipSetStringFormatTrimming (03B44BE0, 3) 0024:trace:gdiplus:GdipSetStringFormatFlags (03B44BE0, 3000) 0024:trace:gdiplus:GdipDrawString (07767388, L"Raum verlassen Kitchen _ Diner", 30, 077675A0, (10176.00,1831.00,1288.00,192.00), 03B44BE0, 03A9F9D0) 0024:trace:gdiplus:GdipDrawString may be ignoring some format flags: attr 3000 0024:trace:gdiplus:GdipMeasureString (07767388, L"Raum verlassen Kitchen _ Diner", 30, 077675A0, (10176.00,1831.00,1288.00,0.00), 03B44BE0, 0115D554, 00000000, 00000000) 0024:trace:gdiplus:GdipMeasureString may be ignoring some format flags: attr 3000 0024:trace:gdiplus:GdipSetMatrixElements (0115D368, 1.00, 0.00, 0.00, 1.00, 0.00, 0.00)
https://bugs.winehq.org/show_bug.cgi?id=46947
David Kahurani k.kahurani@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |k.kahurani@gmail.com
--- Comment #10 from David Kahurani k.kahurani@gmail.com --- I believe this program is relying on a gdiplus bug.
Windows bug:
0024:trace:gdiplus:GdipCreateStringFormat (0, 0, 0115D080) 0024:trace:gdiplus:GdipCreateStringFormat <-- 0394D7B8 0024:trace:gdiplus:GdipSetStringFormatAlign (0394D7B8, 0) 0024:trace:gdiplus:GdipSetStringFormatLineAlign (0394D7B8, 1) 0024:trace:gdiplus:GdipSetStringFormatHotkeyPrefix (0394D7B8, 0) 0024:trace:gdiplus:GdipSetStringFormatTrimming (0394D7B8, 3) 0024:trace:gdiplus:GdipSetStringFormatFlags (0394D7B8, 3000) 0024:trace:gdiplus:GdipDrawString (039D7430, L"Kontakt", 7, 039D7340, (3168.00,3079.00,1288.00,192.00), 0394D7B8, 039C6FC0)
From here we can see that FormatFlags are set to 0x3000 - which is StringFormatFlagsLineLimit | StringFormatFlagsNoWrap.
From the documentation we can read that:
StringFormatFlagsLineLimit Value: 0x00002000 Specifies that only entire lines are laid out in the layout rectangle. By default, layout continues until the end of the text or until no more lines are visible as a result of clipping, whichever comes first. The default settings allow the last line to be partially obscured by a layout rectangle that is not a whole multiple of the line height. To ensure that only whole lines are seen, set this flag and be careful to provide a layout rectangle at least as tall as the height of one line.
However, on testing, this seems to give varying results, at least with GdipDrawString because for instance, the following code snippet does actually draw some clipped text on the screen:
HDC hdc = GetDC(hwnd); const WCHAR to_draw[] = L"Spice";
Graphics graphics(hdc); StringFormat stringFormat; Font font(L"Arial", 48); RectF size;
stringFormat.SetAlignment(0); stringFormat.SetLineAlignment(1); stringFormat.SetHotkeyPrefix(0); stringFormat.SetFormatFlags(0x3000);
SolidBrush brush(Color::Black);
graphics.MeasureString(to_draw, 5, &font, PointF(300.f, 300.f), &size); size.Height = size.Height - 50; graphics.DrawString(to_draw, 5, &font, size, &stringFormat, &brush);
This is all while having the StringFormatFlagsLineLimit set in the flags which dictates that clipped text shouldn't be rendered. Other than this example, Windows seems to randomly show or not show text that shouldn't be rendered(as dictated by StringFormatFlagsLineLimit). I have not been able to identify any patterns in its behaviour. This I think is a bug.
Coming to our program as in this bug. The program calls GdipMeasureString on strings before calling GdipDrawString on them. However, it can be observed that even after calling GdipMeasureString, the program goes on to ignore the layout rectangle height provided by GdipMeasureString and setting, instead, a constant height of 192.0
0024:trace:gdiplus:GdipDrawString (039D7430, L"Kontakt", 7, 039D7340, (3168.00,3079.00,1288.00,192.00), 0394D7B8, 039C6FC0)
0024:trace:gdiplus:GdipDrawString (07767388, L"Raum verlassen Kitchen _ Diner", 30, 077675A0, (10176.00,1831.00,1288.00,192.00), 03B44BE0, 03A9F9D0)
Now, the bold font has a size of 160 while the non-bold font has a size of 120. It goes without saying that the non-bold font will fit in the layout rectangle while the bold will not. With StringFormatFlagsLineLimit the text that doesn't fit in the layout rectangle is not rendered and hence the bold text is missing. This however works on windows, contrary to what the documentation says. It however doesn't seem to work reliably making me think this is a bug.
This solution would probably be to relax the StringFormatFlagsLineLimit flag on Wine.
https://bugs.winehq.org/show_bug.cgi?id=46947
Esme Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |madewokherd@gmail.com