https://bugs.winehq.org/show_bug.cgi?id=41203
Bug ID: 41203 Summary: mCtrl does not work well Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: gdiplus Assignee: wine-bugs@winehq.org Reporter: carlo.bramix@libero.it Distribution: ---
"mCtrl is open-source C library providing set of additional user interface controls for Windows, intended to be complementary to standard Win32API controls from USER32.DLL and COMCTL32.DLL."
I tried to run the example programs on WINE, but the do not work well or they do not work at all. This is what I have noticed:
- CHART control: nothing is displayed. - EXPAND control: pressing the arrow button, the control is expanded, but without animation. Please note that something related to the animation is running in background, if for example the expansion will take one second to execute, WINE will expand the control suddently after one second. - IMGVIEW control: it crashed brutally. - MDITAB control: no tab is displayed. - MENUBAR control: text is drawn outside the highlight (or viceversa).
Attached here some screenshots of these errors.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #1 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55445 --> https://bugs.winehq.org/attachment.cgi?id=55445 CHART control
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #2 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55446 --> https://bugs.winehq.org/attachment.cgi?id=55446 EXPAND control
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #3 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55447 --> https://bugs.winehq.org/attachment.cgi?id=55447 IMGVIEW control
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #4 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55448 --> https://bugs.winehq.org/attachment.cgi?id=55448 MDITAB control
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #5 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55449 --> https://bugs.winehq.org/attachment.cgi?id=55449 MENUBAR control
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com --- I see it can use d2d too, so it's not necessary all about gdi+, and actually you have d3d10/11 loaded as backtrace shows. It's better to split this up, at least gdiplus issues if any from d2d problems.
https://bugs.winehq.org/show_bug.cgi?id=41203
Dmitry Timoshkov dmitry@baikal.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|gdiplus |-unknown Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Version|unspecified |1.9.17
--- Comment #7 from Dmitry Timoshkov dmitry@baikal.ru --- With d2d1 disabled (WINEDLLOVERRIDES=d2d1=d wine example-expand.exe) samples look much nicer than with default settings. This probably means that gdiplus actually makes things work better, and the problem is somewhere else.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #8 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55478 --> https://bugs.winehq.org/attachment.cgi?id=55478 CHART control, GDI+.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #9 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55479 --> https://bugs.winehq.org/attachment.cgi?id=55479 CHART control, GDI+, move the window.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #10 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55480 --> https://bugs.winehq.org/attachment.cgi?id=55480 MDITAB control, GDI+
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #11 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55481 --> https://bugs.winehq.org/attachment.cgi?id=55481 IMGVIEW control, GDI+, backtrace.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #12 from Carlo Bramini carlo.bramix@libero.it --- Actually, mCtrl ues GDI, GDI+, Direct2D and DWrite.
I recompiled mCtrl and its example programs without D2D, here you are my result:
- CHART control, some graphic is displayed, but there are some strange errors, as you can see from attached image. Another thing that happens: click on title of the window and try to move it a bit, the content is redrawn crazy... - EXPAND control, nothing is changed. It does not use D2D actually. - IMGVIEW control, it crashes anyways. I attached the text file wit the log. - MDITAB control now displays tabs, although with some errors. - MENUBAR control, nothing is changed.
I hope you will find it useful.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #13 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55930 --> https://bugs.winehq.org/attachment.cgi?id=55930 About the crash in the image control.
It seems to me that the problem with the IMGVIEW control happens when it tries to blit an image larger than the containing canvas (see attached screenshot). If you do this, boom, wine crashes, no matter if it is GDI+ or D2D.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #14 from Nikolay Sivov bunglehead@gmail.com --- Could you attach a +d2d log when it crashes while using Direct2D?
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #15 from Carlo Bramini carlo.bramix@libero.it --- Created attachment 55979 --> https://bugs.winehq.org/attachment.cgi?id=55979 WINE GDIPLUS on Win7
If you compile WINE GDIPLUS.DLL on Windows and you use it instead of the native one, this is the result. However, I must say that beside some wrong colors and few glitches on the other mCtrl samples, the WINE GDIPLUS works much better on real Windows than WINE, it seems to me that there are problems outside GDIPLUS or D2D.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #16 from Carlo Bramini carlo.bramix@libero.it --- I think that I found the cause of the problem for menubar control. WINE comctl32 has this unimplemented feature:
http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/comctl32/toolbar.c#l43...
and the control sends (0,-2) with TB_SETBITMAPSIZE to its toolbar. Although I do not know how negative values are handled, this is the cause of this problem.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #17 from Carlo Bramini carlo.bramix@libero.it --- I think that I found the bug that makes the imgview control crashing.
When the WM_NCCREATE message is sent to the control, the lpszName field of CREATESTRUCT contains a wrong value. On WINE, this pointer is set to the resource ID. On Windows, this pointer is set to a string with first character set to 0xFFFF and the second character is set to the resource ID.
The mCtrl code of imgview control checks if lpszName is not NULL and test for the first character:
https://github.com/mity/mctrl/blob/master/mctrl/imgview.c#L290
but since the pointer is set to the resource value rather than a valid pointer, it crashes. This is the reason.
Evidently, there is a bug here into DIALOG_CreateIndirect:
http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/user32/dialog.c#l610
The code should create the string properly formatted here if it is a resource, for both the class and the caption.
https://bugs.winehq.org/show_bug.cgi?id=41203
--- Comment #18 from Carlo Bramini carlo.bramix@libero.it --- The bug that caused the expand control to be not animated seems resolved. On the console, I read some fix-me messages not printed before, about functions:
BufferedPaintRenderAnimation GetThemeTransitionDuration BufferedPaintStopAllAnimations
These messages say that the functions are just stubs, but the animation seems to work fine now.
https://bugs.winehq.org/show_bug.cgi?id=41203
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|wine-bugs@winehq.org |bunglehead@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=41203
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Assignee|bunglehead@gmail.com |wine-bugs@winehq.org Resolution|--- |ABANDONED
--- Comment #19 from Nikolay Sivov bunglehead@gmail.com --- I retested with 4.0-rc4:
- example-chart starts and shows charts for me, it's using d2d; - example-expand is animated; - example-imgview crashes, see bug 46407; - example-mditab renders properly with d2d1 disabled, crashes with d2d see bug 46408; - example-menubar still glitches, although I haven't tried on windows, see bug 46409.
I'm closing this report to let discussion continue in separate reports.
https://bugs.winehq.org/show_bug.cgi?id=41203
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #20 from Austin English austinenglish@gmail.com --- Closing.