X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/76a5e5d21ee1a6230d777ce0209b2df4c6075f0f..66ce9e0609ac419e6eeff665b1087193954ed84a:/src/mac/toplevel.cpp?ds=inline diff --git a/src/mac/toplevel.cpp b/src/mac/toplevel.cpp index 83b905c227..f290f8167f 100644 --- a/src/mac/toplevel.cpp +++ b/src/mac/toplevel.cpp @@ -101,6 +101,7 @@ void wxTopLevelWindowMac::Init() m_maximizeOnShow = FALSE; m_macNoEraseUpdateRgn = NewRgn() ; m_macNeedsErasing = false ; + m_macWindow = NULL ; } bool wxTopLevelWindowMac::Create(wxWindow *parent, @@ -130,9 +131,12 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent, wxTopLevelWindowMac::~wxTopLevelWindowMac() { - wxToolTip::NotifyWindowDelete(m_macWindow) ; - UMADisposeWindow( (WindowRef) m_macWindow ) ; - + if ( m_macWindow ) + { + wxToolTip::NotifyWindowDelete(m_macWindow) ; + UMADisposeWindow( (WindowRef) m_macWindow ) ; + } + wxRemoveMacWindowAssociation( this ) ; wxTopLevelWindows.DeleteObject(this); @@ -175,7 +179,7 @@ void wxTopLevelWindowMac::Iconize(bool iconize) bool wxTopLevelWindowMac::IsIconized() const { - // mac dialogs cannot be iconized + // mac dialogs cannot be iconized return FALSE; } @@ -229,7 +233,7 @@ void wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title, WindowClass wclass = 0; WindowAttributes attr = kWindowNoAttributes ; - if ( HasFlag(wxTINY_CAPTION_HORIZ) || HasFlag(wxTINY_CAPTION_VERT) ) + if ( HasFlag( wxFRAME_TOOL_WINDOW) || HasFlag(wxTINY_CAPTION_HORIZ) || HasFlag(wxTINY_CAPTION_VERT) ) { wclass = kFloatingWindowClass ; if ( HasFlag(wxTINY_CAPTION_VERT) ) @@ -306,7 +310,7 @@ WXWidget wxTopLevelWindowMac::MacGetContainerForEmbedding() void wxTopLevelWindowMac::MacUpdate( long timestamp) { - wxMacPortStateHelper help( GetWindowPort( (WindowRef) m_macWindow) ) ; + wxMacPortStateHelper help( (GrafPtr) GetWindowPort( (WindowRef) m_macWindow) ) ; BeginUpdate( (WindowRef)m_macWindow ) ; @@ -416,13 +420,6 @@ void wxTopLevelWindowMac::MacFireMouseEvent( WXEVENTREF evr ) event.m_x += m_x; event.m_y += m_y; -/* - wxPoint origin = GetClientAreaOrigin() ; - - event.m_x += origin.x ; - event.m_y += origin.y ; -*/ - event.m_timeStamp = ev->when; event.SetEventObject(this); if ( wxTheApp->s_captureWindow ) @@ -433,6 +430,7 @@ void wxTopLevelWindowMac::MacFireMouseEvent( WXEVENTREF evr ) event.m_x = x ; event.m_y = y ; wxTheApp->s_captureWindow->GetEventHandler()->ProcessEvent( event ) ; + if ( ev->what == mouseUp ) { wxTheApp->s_captureWindow = NULL ;