"Krzysztof Foltman" kfoltman@portal.onet.pl wrote:
Applying this patch makes MDI Window menu behave as follows:
- if no child windows are present, no separator is added (or it is
removed if it was present before)
- if any child windows are present (and visible), a separator is added
after last item of the original Window menu (unless it was already there)
Is there a real bug you are trying to fix?
When I last time worked with MDI code including Window menu handling I did a lot of tests under Windows. Did you?
Dmitry Timoshkov wrote:
Is there a real bug you are trying to fix?
Yes. Some accounting app that works perfectly under Windows, has its menu cut off at the last separator. Because the part which is cut off contains some essential functions (like creating a new database), I'd classify as a bug. And as the patch fixes makes it run as under Windows I'd classify as a fix. Good fix ? I don't know.
The app uses the Window menu in a very untypical way (it's not called Window, and most of the menu isn't related to window operations, the only Window menu functionality used is the window list). I wouldn't call it standards-compliant, but it works under Windows and there's no reason why it shouldn't work in WINE.
When I last time worked with MDI code including Window menu handling I did a lot of tests under Windows. Did you?
I did some (especially under Windows, where it's easier to find an MDI application that works). However, I wouldn't call that "a lot of tests". That's why I've asked for help here.
Krzysztof
"Krzysztof Foltman" kfoltman@portal.onet.pl wrote:
When I last time worked with MDI code including Window menu handling I did a lot of tests under Windows. Did you?
I did some (especially under Windows, where it's easier to find an MDI application that works). However, I wouldn't call that "a lot of tests". That's why I've asked for help here.
Then perhaps you have a +relay trace which exposes a problem and could write a simple test app based on that information?
dlls/user/tests/win.c has a very simple MDI testing frame work which you can use as a base for your tests.
Dmitry Timoshkov wrote:
Then perhaps you have a +relay trace which exposes a problem and could write a simple test app based on that information?
Run it on Windows (I've tested in under XP), run it under original WINE, run it under WINE+my patch. Compare the Window menus with 0, 1 and 2 child items.
It's supposed to have two dummy items (Dummy option 1 and Dummy option 2), as well as normal child window list (with separator if any child exists, with no separator if there are no children).
Under original WINE (mdi.c from the latest CVS, the rest is one or two days old), the Dummy option 2 mysteriously disappears. Just try to create a child window and look at the Window menu.
And BTW, my app is silly and badly written. I've compiled it with mingw, as I don't have VC++ at home. I hope noone cares.
Krzysztof
"Krzysztof Foltman" kfoltman@portal.onet.pl wrote:
Then perhaps you have a +relay trace which exposes a problem and could write a simple test app based on that information?
Run it on Windows (I've tested in under XP), run it under original WINE, run it under WINE+my patch. Compare the Window menus with 0, 1 and 2 child items.
It's supposed to have two dummy items (Dummy option 1 and Dummy option 2), as well as normal child window list (with separator if any child exists, with no separator if there are no children).
Under original WINE (mdi.c from the latest CVS, the rest is one or two days old), the Dummy option 2 mysteriously disappears. Just try to create a child window and look at the Window menu.
Thanks, now I see the problem. I'll try to figure out whether a less intrusive fix exists.
And BTW, my app is silly and badly written. I've compiled it with mingw, as I don't have VC++ at home. I hope noone cares.
Not at all! Your app is an excellent sample app.
"Krzysztof Foltman" kfoltman@portal.onet.pl wrote:
Run it on Windows (I've tested in under XP), run it under original WINE, run it under WINE+my patch. Compare the Window menus with 0, 1 and 2 child items.
It's supposed to have two dummy items (Dummy option 1 and Dummy option 2), as well as normal child window list (with separator if any child exists, with no separator if there are no children).
The patch I just sent to wine-patches should fix that problem.
Dmitry Timoshkov wrote:
The patch I just sent to wine-patches should fix that problem.
It fixed the problem, both with my sample and with the app that I couldn't use because of the bug. Thanks.
Krzysztof