]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/uiactioncmn.cpp
Don't crash on malformed HTML in wxHTML font tag handler.
[wxWidgets.git] / src / common / uiactioncmn.cpp
index a109097bd031977d7a1d8263d3d3a819ccc72bf0..18dcbb7d82edd511be8cfa515a6bdb97200f18b2 100644 (file)
@@ -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);