]> git.saurik.com Git - wxWidgets.git/commit
Prevent duplicate menu event processing in MDI windows.
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 3 Jul 2013 22:18:42 +0000 (22:18 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 3 Jul 2013 22:18:42 +0000 (22:18 +0000)
commit5ac5e40e4181aaf7fd79ca445113d7a228a70cb8
tree7a7eb9bdbccbab81d6daee25880a32b11a717b7f
parent12ab6ad3d2810d72f34203c760b3cea8bd6f2430
Prevent duplicate menu event processing in MDI windows.

Record the object propagating the given event upwards in the event object
itself and use it in wxMDIParentFrame to determine whether the event being
handled is already coming from wxMDIChildFrame and avoid sending it back for
processing it there again in this case.

This is ugly and makes wx event processing even more complex but this is the
only way I could find to ensure that

(a) Both the child and the parent frames get the events from the toolbar
    (even though the toolbar parent is the parent frame and hence normally
    the child wouldn't get notified about them at all and so the forwarding
    at wxMDIParentFrame level is required to make this work).

(b) The child gets the event only once, whether it comes from a toolbar (and
    hence indirectly via the parent frame) or from the child menu (and hence
    directly to the child, at least in wxMSW).

This commit fixes the event propagation unit test case, at least under MSW and
GTK.

See #14314.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
include/wx/event.h
include/wx/mdi.h
src/common/event.cpp
src/common/wincmn.cpp