X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bec721ec75946b7659e104b637a4d1f45bef0997..03275ddc2d971f3df8f521b3b22cc2efab12bbef:/src/mac/window.cpp diff --git a/src/mac/window.cpp b/src/mac/window.cpp index ce34604fa1..0708958546 100644 --- a/src/mac/window.cpp +++ b/src/mac/window.cpp @@ -124,6 +124,8 @@ void wxWindowMac::Init() m_hScrollBar = NULL ; m_vScrollBar = NULL ; + + m_label = wxEmptyString; } // Destructor @@ -676,12 +678,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 ; } @@ -1072,6 +1074,16 @@ void wxWindowMac::MacPaintBorders( int left , int top ) } } +void wxWindowMac::RemoveChild( wxWindowBase *child ) +{ + if ( child == m_hScrollBar ) + m_hScrollBar = NULL ; + if ( child == m_vScrollBar ) + m_vScrollBar = NULL ; + + wxWindowBase::RemoveChild( child ) ; +} + // New function that will replace some of the above. void wxWindowMac::SetScrollbar(int orient, int pos, int thumbVisible, int range, bool refresh) @@ -1376,6 +1388,7 @@ bool wxWindowMac::MacGetWindowFromPoint( const wxPoint &screenpoint , wxWindowMa } extern int wxBusyCursorCount ; +static wxWindow *gs_lastWhich = NULL; bool wxWindowMac::MacDispatchMouseEvent(wxMouseEvent& event) { @@ -1407,6 +1420,7 @@ bool wxWindowMac::MacDispatchMouseEvent(wxMouseEvent& event) event.m_x = x ; event.m_y = y ; + event.SetEventObject( this ) ; if ( wxBusyCursorCount == 0 ) { @@ -1427,6 +1441,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;