X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c3f62b348fe082aa471f9c56377f018ebec77dce..d5363c04ac7bfd5409b369746a67b83fd10cfdbc:/src/common/uiactioncmn.cpp?ds=sidebyside diff --git a/src/common/uiactioncmn.cpp b/src/common/uiactioncmn.cpp index a109097bd0..18dcbb7d82 100644 --- a/src/common/uiactioncmn.cpp +++ b/src/common/uiactioncmn.cpp @@ -4,7 +4,7 @@ // Author: Kevin Ollivier, Steven Lamerton, Vadim Zeitlin // Modified by: // Created: 2010-03-06 -// RCS-ID: $Id: menu.cpp 54129 2008-06-11 19:30:52Z SC $ +// RCS-ID: $Id$ // Copyright: (c) Kevin Ollivier // (c) 2010 Steven Lamerton // (c) 2010 Vadim Zeitlin @@ -57,10 +57,28 @@ wxUIActionSimulator::Key(int keycode, int modifiers, bool isDown) wxASSERT_MSG( !(modifiers & wxMOD_WIN ), "wxMOD_WIN is not implemented" ); - return DoKey(keycode, modifiers, isDown); + if ( isDown ) + SimulateModifiers(modifiers, true); + + bool rc = DoKey(keycode, modifiers, isDown); + + if ( !isDown ) + SimulateModifiers(modifiers, false); + + return rc; +} + +void wxUIActionSimulator::SimulateModifiers(int modifiers, bool isDown) +{ + if ( modifiers & wxMOD_SHIFT ) + DoKey(WXK_SHIFT, modifiers, isDown); + if ( modifiers & wxMOD_ALT ) + DoKey(WXK_ALT, modifiers, isDown); + if ( modifiers & wxMOD_CONTROL ) + DoKey(WXK_CONTROL, modifiers, isDown); } -bool wxUIActionSimulator::Char(int keycode, int modifiers) +bool wxUIActionSimulator::Char(int keycode, int modifiers) { Key(keycode, modifiers, true); Key(keycode, modifiers, false);