]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/textctrl_osx.cpp
Implement wxSTAY_ON_TOP for wxMessageDialog in wxGTK.
[wxWidgets.git] / src / osx / textctrl_osx.cpp
index 1059c4b6c676e09581150e2882afc3b70deaa3af..8fd25ac960ba0a6d19615e95d515e7a0bdf99de2 100644 (file)
@@ -134,7 +134,7 @@ bool wxTextCtrl::Create( wxWindow *parent,
 
 wxTextWidgetImpl* wxTextCtrl::GetTextPeer() const
 {
-    return dynamic_cast<wxTextWidgetImpl*> (m_peer); 
+    return dynamic_cast<wxTextWidgetImpl*> (m_peer);
 }
 
 void wxTextCtrl::MacSuperChangedPosition()
@@ -473,7 +473,7 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
         return ;
     }
 
-    if ( !IsEditable() && key != WXK_LEFT && key != WXK_RIGHT && key != WXK_DOWN && key != WXK_UP && key != WXK_TAB &&
+    if ( !IsEditable() && !event.IsKeyInCategory(WXK_CATEGORY_ARROW | WXK_CATEGORY_TAB) &&
         !( key == WXK_RETURN && ( (m_windowStyle & wxTE_PROCESS_ENTER) || (m_windowStyle & wxTE_MULTILINE) ) )
 //        && key != WXK_PAGEUP && key != WXK_PAGEDOWN && key != WXK_HOME && key != WXK_END
         )
@@ -486,8 +486,8 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
     // allow navigation and deletion
     GetSelection( &from, &to );
     if ( !IsMultiLine() && m_maxLength && GetValue().length() >= m_maxLength &&
-        key != WXK_LEFT && key != WXK_RIGHT && key != WXK_TAB && key != WXK_UP && key != WXK_DOWN && 
-        key != WXK_BACK && key != WXK_DELETE && !( key == WXK_RETURN && (m_windowStyle & wxTE_PROCESS_ENTER) ) &&
+        !event.IsKeyInCategory(WXK_CATEGORY_ARROW | WXK_CATEGORY_TAB | WXK_CATEGORY_CUT) &&
+        !( key == WXK_RETURN && (m_windowStyle & wxTE_PROCESS_ENTER) ) &&
         from == to )
     {
         // eat it, we don't want to add more than allowed # of characters
@@ -580,6 +580,8 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
         event.Skip(true) ;
     }
 
+    // osx_cocoa sends its event upon insertText
+#if wxOSX_USE_CARBON
     if ( ( key >= 0x20 && key < WXK_START ) ||
          ( key >= WXK_NUMPAD0 && key <= WXK_DIVIDE ) ||
          key == WXK_RETURN ||
@@ -590,6 +592,7 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
         event1.SetEventObject( this );
         wxPostEvent( GetEventHandler(), event1 );
     }
+#endif
 }
 
 // ----------------------------------------------------------------------------