]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/window.cpp
added spinctrl to be ignored when clicked (otherwise its siblings on the same window...
[wxWidgets.git] / src / mac / carbon / window.cpp
index 9d9fdb5cc6e1a2208b6bf25cb708a92df80dd327..a821346eefc42a73f8aeebd4fc9e1c7e31a55294 100644 (file)
@@ -35,6 +35,7 @@
 #include "wx/tooltip.h"
 #include "wx/statusbr.h"
 #include "wx/menuitem.h"
+#include "wx/spinctrl.h"
 #include "wx/log.h"
 
 #if wxUSE_CARET
@@ -124,6 +125,8 @@ void wxWindowMac::Init()
 
     m_hScrollBar = NULL ;
     m_vScrollBar = NULL ;
+
+    m_label = wxEmptyString;
 }
 
 // Destructor
@@ -676,12 +679,12 @@ wxPoint wxWindowMac::GetClientAreaOrigin() const
     return wxPoint(MacGetLeftBorderSize(  ) , MacGetTopBorderSize(  ) );
 }
 
-void wxWindow::SetTitle(const wxString& title)
+void wxWindowMac::SetTitle(const wxString& title)
 {
     m_label = title ;
 }
 
-wxString wxWindow::GetTitle() const
+wxString wxWindowMac::GetTitle() const
 {
     return m_label ;
 }
@@ -1386,6 +1389,7 @@ bool wxWindowMac::MacGetWindowFromPoint( const wxPoint &screenpoint , wxWindowMa
 }
 
 extern int wxBusyCursorCount ;
+static wxWindow *gs_lastWhich = NULL;
 
 bool wxWindowMac::MacDispatchMouseEvent(wxMouseEvent& event)
 {
@@ -1394,7 +1398,7 @@ bool wxWindowMac::MacDispatchMouseEvent(wxMouseEvent& event)
         return FALSE;
     
 
-    if ( IsKindOf( CLASSINFO ( wxStaticBox ) ) )
+    if ( IsKindOf( CLASSINFO ( wxStaticBox ) ) || IsKindOf( CLASSINFO( wxSpinCtrl ) ))
         return FALSE ; 
     
     WindowRef window = (WindowRef) MacGetRootWindow() ;
@@ -1438,6 +1442,23 @@ bool wxWindowMac::MacDispatchMouseEvent(wxMouseEvent& event)
         wxToolTip::RelayEvent( this , event);
 #endif // wxUSE_TOOLTIPS
 
+    if (gs_lastWhich != this)
+    {
+        gs_lastWhich = this;
+        
+        // Double clicks must always occur on the same window
+        if (event.GetEventType() == wxEVT_LEFT_DCLICK)
+            event.SetEventType( wxEVT_LEFT_DOWN );
+        if (event.GetEventType() == wxEVT_RIGHT_DCLICK)
+            event.SetEventType( wxEVT_RIGHT_DOWN );
+            
+        // Same for mouse up events
+        if (event.GetEventType() == wxEVT_LEFT_UP)
+            return TRUE;
+        if (event.GetEventType() == wxEVT_RIGHT_UP)
+            return TRUE;
+    }
+
     GetEventHandler()->ProcessEvent( event ) ;
 
     return TRUE;