]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/cocoa/window.mm
Fix wrong tab order in wxAuiNotebook after dragging.
[wxWidgets.git] / src / osx / cocoa / window.mm
index 7b30bf644f5702e45cdef6a60f61f795b2045ba8..5e2a80e53f2baa475e582cc44928583350eca887 100644 (file)
@@ -1149,8 +1149,8 @@ void wxWidgetCocoaImpl::mouseEvent(WX_NSEvent event, WXWidget slf, void *_cmd)
             superimpl(slf, (SEL)_cmd, event);
             
             // super of built-ins keeps the mouse up, as wx expects this event, we have to synthesize it
             superimpl(slf, (SEL)_cmd, event);
             
             // super of built-ins keeps the mouse up, as wx expects this event, we have to synthesize it
-            
-            if ( [ event type]  == NSLeftMouseDown )
+            // only trigger if at this moment the mouse is already up
+            if ( [ event type]  == NSLeftMouseDown && !wxGetMouseState().LeftIsDown() )
             {
                 wxMouseEvent wxevent(wxEVT_LEFT_DOWN);
                 SetupMouseEvent(wxevent , event) ;
             {
                 wxMouseEvent wxevent(wxEVT_LEFT_DOWN);
                 SetupMouseEvent(wxevent , event) ;
@@ -1438,7 +1438,10 @@ void wxWidgetCocoaImpl::controlAction( WXWidget WXUNUSED(slf), void *WXUNUSED(_c
 {
     wxWindow* wxpeer = (wxWindow*) GetWXPeer();
     if ( wxpeer )
 {
     wxWindow* wxpeer = (wxWindow*) GetWXPeer();
     if ( wxpeer )
+    {
+        wxpeer->OSXSimulateFocusEvents();
         wxpeer->OSXHandleClicked(0);
         wxpeer->OSXHandleClicked(0);
+    }
 }
 
 void wxWidgetCocoaImpl::controlDoubleAction( WXWidget WXUNUSED(slf), void *WXUNUSED(_cmd), void *WXUNUSED(sender))
 }
 
 void wxWidgetCocoaImpl::controlDoubleAction( WXWidget WXUNUSED(slf), void *WXUNUSED(_cmd), void *WXUNUSED(sender))
@@ -2125,6 +2128,9 @@ void wxWidgetCocoaImpl::Embed( wxWidgetImpl *parent )
     NSView* container = parent->GetWXWidget() ;
     wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ;
     [container addSubview:m_osxView];
     NSView* container = parent->GetWXWidget() ;
     wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ;
     [container addSubview:m_osxView];
+    
+    if( m_wxPeer->IsFrozen() )
+        [[m_osxView window] disableFlushWindow];
 }
 
 void wxWidgetCocoaImpl::SetBackgroundColour( const wxColour &col )
 }
 
 void wxWidgetCocoaImpl::SetBackgroundColour( const wxColour &col )
@@ -2537,7 +2543,7 @@ void wxWidgetCocoaImpl::DoNotifyFocusEvent(bool receivedFocus, wxWidgetImpl* oth
             event.SetWindow(otherWindow->GetWXPeer());
         thisWindow->HandleWindowEvent(event) ;
     }
             event.SetWindow(otherWindow->GetWXPeer());
         thisWindow->HandleWindowEvent(event) ;
     }
-    else // !receivedFocuss
+    else // !receivedFocus
     {
 #if wxUSE_CARET
         if ( thisWindow->GetCaret() )
     {
 #if wxUSE_CARET
         if ( thisWindow->GetCaret() )
@@ -2586,6 +2592,18 @@ void wxWidgetCocoaImpl::SetFlipped(bool flipped)
     m_isFlipped = flipped;
 }
 
     m_isFlipped = flipped;
 }
 
+void wxWidgetCocoaImpl::SetDrawingEnabled(bool enabled)
+{
+    if ( enabled )
+    {
+        [[m_osxView window] enableFlushWindow];
+        [m_osxView setNeedsDisplay:YES];
+    }
+    else
+    {
+        [[m_osxView window] disableFlushWindow];
+    }
+}
 //
 // Factory methods
 //
 //
 // Factory methods
 //