]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/textctrl.cpp
added WindowHDC similar to Screen/MemoryHDC
[wxWidgets.git] / src / mac / carbon / textctrl.cpp
index 100978c50f2c3012c993102e35e9b9526eb1ac26..b1ae31ebe5eae8db343d3d6f4873eea58b71591c 100644 (file)
@@ -817,8 +817,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
                 | kControlGetsFocusOnClick | kControlSupportsLiveFeedback;
             /* create the control */
         m_peer = new wxMacControl() ;
-        verify_noerr( CreateUserPaneControl( MAC_WXHWND(GetParent()->MacGetTopLevelWindowRef()) , &bounds, featurSet , , *m_peer ) );
-    ) ) ;
+        verify_noerr( ::CreateUserPaneControl( MAC_WXHWND(GetParent()->MacGetTopLevelWindowRef()), &bounds, featurSet, *m_peer ) );
         
         wxMacWindowClipper c(this) ;
         STPTextPaneVars *varsp ;
@@ -1986,22 +1985,23 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
             break;
 
         case WXK_TAB:
-            // always produce navigation event - even if we process TAB
-            // ourselves the fact that we got here means that the user code
-            // decided to skip processing of this TAB - probably to let it
-            // do its default job.
+            if ( !(m_windowStyle & wxTE_PROCESS_TAB))
             {
-                wxNavigationKeyEvent eventNav;
-                eventNav.SetDirection(!event.ShiftDown());
-                eventNav.SetWindowChange(event.ControlDown());
-                eventNav.SetEventObject(this);
-
-                if ( GetParent()->GetEventHandler()->ProcessEvent(eventNav) )
-                    return;
-
-                event.Skip() ;
+                int flags = 0;
+                if (!event.ShiftDown())
+                    flags |= wxNavigationKeyEvent::IsForward ;
+                if (event.ControlDown())
+                    flags |= wxNavigationKeyEvent::WinChange ;
+                Navigate(flags);
                 return;
             }
+            else
+            {
+                // This is necessary (don't know why) or the tab will not
+                // be inserted.
+                WriteText(wxT("\t"));
+            }
+            
             break;
     }