https://bugs.winehq.org/show_bug.cgi?id=37297
Bug ID: 37297 Summary: CreateEdit windows always fullscreen under wine Product: Wine Version: 1.7.26 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: n4af@n4af.net
ref: https://forum.winehq.org/viewtopic.php?t=23405&p=96423
I have a Pascal (Dephi) app that runs well under Wine application layer. The problem is that there are a number of edit controls that will only show in full screen under Wine.
This would be an example of a procedure to create a editable window using Alt-D
WM_INITDIALOG: begin
Windows.SetWindowText(hwnddlg, RC_DUPECHECKOAR);
Format(TempBuffer1, TC_ENTERCALLTOBECHECKEDON, BandStringsArray[InActiveRadioPtr.BandMemory], ModeStringArray[InActiveRadioPtr.ModeMemory]); CreateStatic(TempBuffer1, 15, 3, 250, hwnddlg, 102);
AltDEditWindowHandle := CreateEdit(ES_CENTER or ES_UPPERCASE or WS_BORDER, 15, 27, 250, 30, hwnddlg, 101);
asm mov edx,[MainWindowEditFont] call tWM_SETFONT end; CreateOKCancelButtons(hwnddlg);
The above CreateEdit dutifully creates a window under Win7. Ubuntu (kernel 3.16) will only display as fullscreen.
Under linux I can grab the title bar and move the f/s window but nothing else. Right clicking on the title bar i have options Restore, Resize, Maximize selected.
Screen captures on https://forum.winehq.org/viewtopic.php?t=23405&p=96423
Tks, Howard
https://bugs.winehq.org/show_bug.cgi?id=37297
Janne janne.kekkonen@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |janne.kekkonen@gmail.com
--- Comment #1 from Janne janne.kekkonen@gmail.com --- Same behavior can be seen with wine 9.00.
Log indicates that window is created with quite large cx &cy values.
7904.966:0024:Call win32u.NtUserCreateWindowEx(00010001,006eeeac,00000000,006eeeb4,00c808c4,00000000,0000001d,000a5a0b,00038a27,000300ba,00000000,00400000,00000000,00000000,00400000,00000000,00000001) ret=7a34b445 7904.991:0024:Ret win32u.NtUserCreateWindowEx() retval=000201c4 ret=7a34b445 ... 7904.993:0024:Call user32.SetWindowTextA(000201c4,005030f4 "Dupe Check On Inactive Radio") ret=00502f7b
https://bugs.winehq.org/show_bug.cgi?id=37297
Janne janne.kekkonen@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|janne.kekkonen@gmail.com |
https://bugs.winehq.org/show_bug.cgi?id=37297
Sagawa sagawa.aki+winebugs@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sagawa.aki+winebugs@gmail.c | |om
https://bugs.winehq.org/show_bug.cgi?id=37297
--- Comment #2 from Sagawa sagawa.aki+winebugs@gmail.com --- Created attachment 77811 --> https://bugs.winehq.org/attachment.cgi?id=77811 Proposed patch
Here is the proposed patch. I'll submit it as Merge Request after 10.0 release.
Actually from what I have found out this seems to be a bug in the TR4W [1]. However, it works fine on Windows so I think we need bug compatibility.
To be more specific, the app is specifying the DS_SETFONT flag in a DLGTEMPLATE-like structure, but does not setting the required size and typeface name in memory [2]. As a result, Wine and Windows interpret the garbage in memory as size and typeface name.
According to the test case I created [3], native ignores the font name and point size if the specified font name isn't found, and uses SYSTEM_FONT instead. Wine does not implement this method, so an extremely large dialog unit is calculated and a huge window is shown. My patch implements the method and fixes the issue.
[1] https://tr4w.net/ [2] https://github.com/n4af/TR4W/blob/93a731f6f4e182dfa35df8b8fc2dfa14ac2f7dde/t... [3] https://testbot.winehq.org/JobDetails.pl?Key=150838
https://bugs.winehq.org/show_bug.cgi?id=37297
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
https://bugs.winehq.org/show_bug.cgi?id=37297
Rafał Mużyło galtgendo@o2.pl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |galtgendo@o2.pl