http://bugs.winehq.org/show_bug.cgi?id=27403
Summary: Collapsable section headers in Solidworks property manager are overdrawn, thus unusable Product: Wine Version: 1.3.21 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: gdi32 AssignedTo: wine-bugs@winehq.org ReportedBy: mpartap@gmx.net
The problem can be seen in the attached video: headers on the first tab are first displayed correctly (and are clickable), then they get overdrawn slowly which makes them non-clickable. Usually, the second tab does not have this problem, and some actions trigger the header buttons to be redrawn, but they get overdrawn again at once. I tried to nail down the problem by vastly expanding RelayExclude to the 500 topmost function calls, an excerpt of the resulting log is also attached. No fixmes or warnings come up.
http://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #1 from Marcel Partap mpartap@gmx.net 2011-06-06 05:02:25 CDT --- Created an attachment (id=35043) --> (http://bugs.winehq.org/attachment.cgi?id=35043) reduced relay log
the video (2.5MiB) can be found @ http://tinyurl.com/solidworks-propertymanager-ogv
http://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #2 from Marcel Partap mpartap@gmx.net 2011-06-06 05:03:33 CDT --- Created an attachment (id=35044) --> (http://bugs.winehq.org/attachment.cgi?id=35044) RelayExclude.reg setting
http://bugs.winehq.org/show_bug.cgi?id=27403
Markus Amsler markus.amsler@oribi.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |markus.amsler@oribi.org Ever Confirmed|0 |1
--- Comment #3 from Markus Amsler markus.amsler@oribi.org 2011-06-13 16:23:25 CDT --- I also see this bug. mfc80u repeatedly calls SetWindowPos and makes the section header window each time 5 pixel smaller until its gone.
http://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #4 from Marcel Partap mpartap@gmx.net 2011-06-15 19:56:06 CDT ---
mfc80u repeatedly calls SetWindowPos and makes the section header window each time 5 pixel smaller until its gone.
Mhh. What is that good for. Can it be stopped?
http://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #5 from Markus Amsler markus.amsler@oribi.org 2011-06-16 06:52:54 CDT ---
Mhh. What is that good for. Can it be stopped?
That's just a sympton of the bug. I still don't know whats causing mfc80u to go haywire. In fact I'm still not even sure if its a comctl32 or user32 windowing issue.
http://bugs.winehq.org/show_bug.cgi?id=27403
Maarten Bezemer maarten.bezemer@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |maarten.bezemer@gmail.com
--- Comment #6 from Maarten Bezemer maarten.bezemer@gmail.com 2012-02-01 03:19:38 CST --- Duplicate of bug #24621
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #7 from Austin English austinenglish@gmail.com --- This is your friendly reminder that there has been no bug activity for 2 years. Is this still an issue in current (1.7.16 or newer) wine?
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #8 from Maarten Bezemer maarten.bezemer@gmail.com --- It is still an issue with wine-1.7.15 (on Kubuntu 13.10, 64-bit)
Although, I do not precisely know whether it is overdrawn or not. But all headers briefly show their content (texts) and then this content disappears, making the header unusable.
http://bugs.winehq.org/show_bug.cgi?id=27403
Sylvain Petreolle spetreolle@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |spetreolle@yahoo.fr
https://bugs.winehq.org/show_bug.cgi?id=27403
Funkster wine-bugs@funkster.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wine-bugs@funkster.org
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #9 from Funkster wine-bugs@funkster.org --- This is still an issue with wine-1.7.28 (on Fedora 20, 64-bit).
Has anyone had any ideas on the cause? Or at least a way to make the headers remain clickable even if they get overwritten? This is really the last bug that's stopping me using all the features of this product.
Thanks!
https://bugs.winehq.org/show_bug.cgi?id=27403
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=27403
denis bonnenfant denis.bonnenfant@diderot.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |denis.bonnenfant@diderot.or | |g
--- Comment #10 from denis bonnenfant denis.bonnenfant@diderot.org --- The issue is still there with SW2014, but redraws are faster, and most of the dialogs are now useable.
A workaround for unclickable tabs is to undock the property manager, and to resize it, then to click quickly on the tabs before redraw !
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #11 from Maarten Bezemer maarten.bezemer@gmail.com --- This is still an issue for SolidWorks 2010 (wine-1.7.34, WINEARCH=win32, Kubuntu 14.10, 64-bit)
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #12 from denis bonnenfant denis.bonnenfant@diderot.org --- This bug is still present in 1.7.51, and it is now the last one to solve for give gold status to SolidWorks !
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #13 from Marcel Partap mpartap@gmx.net --- (In reply to Markus Amsler from comment #3)
mfc80u repeatedly calls SetWindowPos and makes the section header window each time 5 pixel smaller until its gone.
...mmh.. is there any possibility to hook insert a SetWindowPos() call to revert the effect? How did you find this?
https://bugs.winehq.org/show_bug.cgi?id=27403
Sylvain Petreolle spetreolle@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|spetreolle@yahoo.fr |
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #14 from Funkster wine-bugs@funkster.org --- This is still an issue with SolidWorks 2013 / wine 1.9.12 / WINEARCH=win32 / fedora 23 64bit.
Is it of any interest that SolidWorks 2008 is not affected by this bug? The headers look the same, but I guess they're being drawn in a different way?
https://bugs.winehq.org/show_bug.cgi?id=27403
Dmitry windes@rambler.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |windes@rambler.ru
--- Comment #15 from Dmitry windes@rambler.ru --- This is still a problem on Wine x64 (tested on 6.0, 6.23, 7.0, 7.4, 7.5, 7.6, 7.9, 7.10, 7.11, 7.12) on SolidWorks 2014, 207, 2020 and 2022.
https://bugs.winehq.org/show_bug.cgi?id=27403
Dimitris Zervas dzervas@dzervas.gr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dzervas@dzervas.gr
--- Comment #16 from Dimitris Zervas dzervas@dzervas.gr --- This is still a problem in SW 2024 with wine staging 9.8-6
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #17 from Dimitris Zervas dzervas@dzervas.gr --- The video URL is now dead, here's the bug in SW 2024: https://youtu.be/TacxaKBvlY0
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #18 from Dimitris Zervas dzervas@dzervas.gr --- Created attachment 76452 --> https://bugs.winehq.org/attachment.cgi?id=76452 WineVSWindows_SetUserPos.log
I added some code to log all NtUserSetWindowPos to wine and I understood the following:
The problematic code calls SetWindowPos many times with flag=0 and after=HWND_TOPMOST I ran the program under a Windows VM (which runs fine) and using API Monitor I logged all the SetWindowPos calls I found that the calls where not nearly as many and the X and CX arguments where not counted down although that's true in wine - thus the "animation" of deleting the text
I'm attaching the wine logs vs the windows logs (WineVSWindows_SetUserPos.log)
https://bugs.winehq.org/show_bug.cgi?id=27403
--- Comment #19 from Dimitris Zervas dzervas@dzervas.gr --- I got the text to stop vanishing but some menus (mostly checkboxes) are still missing Also my "fix" is quite bad and will probably cause problems to other apps - though seems to be working for solidworks (commit 79fb59e21ed):
diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 13dd1c8d80a..22c0738d840 100644 --- -hdlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -3520,6 +3520,12 @@ BOOL WINAPI NtUserSetWindowPos( HWND hwnd, HWND after, INT x, INT y, INT cx, INT { WINDOWPOS winpos;
+ if (flags == 0 && after == HWND_TOPMOST) + { + printf("Here => NtUserSetWindowPos x: %d y: %d cx: %d cy: %d, flags: %08X\n", x, y, cx, cy, flags); + return TRUE; + } + TRACE( "hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n", hwnd, after, x, y, cx, cy, flags ); if(TRACE_ON(win)) dump_winpos_flags(flags);