From: Stefan Csomor Date: Tue, 9 Sep 2003 15:48:52 +0000 (+0000) Subject: crashes fixed, trying to remove erradic redraws when layouting windows X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/de923e4f508d751267da1b730e7b8c4fc1f4793c crashes fixed, trying to remove erradic redraws when layouting windows git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/control.cpp b/src/mac/carbon/control.cpp index 8f7542389a..31e38de31a 100644 --- a/src/mac/carbon/control.cpp +++ b/src/mac/carbon/control.cpp @@ -290,7 +290,8 @@ void wxAssociateControlWithMacControl(ControlHandle inControl, wxControl *contro void wxRemoveMacControlAssociation(wxControl *control) { - wxWinMacControlList->DeleteObject(control); + if ( wxWinMacControlList ) + wxWinMacControlList->DeleteObject(control); } void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString label , @@ -346,7 +347,7 @@ void wxControl::MacPostControlCreate() ControlHandle container = (ControlHandle) GetParent()->MacGetContainerForEmbedding() ; wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ; ::EmbedControl( (ControlHandle) m_macControl , container ) ; - m_macControlIsShown = true ; + m_macControlIsShown = MacIsReallyShown() ; wxAssociateControlWithMacControl( (ControlHandle) m_macControl , this ) ; if ( wxMacSetupControlBackgroundUPP == NULL ) @@ -402,7 +403,8 @@ void wxControl::MacPostControlCreate() UMASetControlTitle( (ControlHandle) m_macControl , wxStripMenuCodes(m_label) ) ; #endif - UMAShowControl( (ControlHandle) m_macControl ) ; + if ( m_macControlIsShown ) + UMAShowControl( (ControlHandle) m_macControl ) ; SetCursor( *wxSTANDARD_CURSOR ) ; diff --git a/src/mac/control.cpp b/src/mac/control.cpp index 8f7542389a..31e38de31a 100644 --- a/src/mac/control.cpp +++ b/src/mac/control.cpp @@ -290,7 +290,8 @@ void wxAssociateControlWithMacControl(ControlHandle inControl, wxControl *contro void wxRemoveMacControlAssociation(wxControl *control) { - wxWinMacControlList->DeleteObject(control); + if ( wxWinMacControlList ) + wxWinMacControlList->DeleteObject(control); } void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString label , @@ -346,7 +347,7 @@ void wxControl::MacPostControlCreate() ControlHandle container = (ControlHandle) GetParent()->MacGetContainerForEmbedding() ; wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ; ::EmbedControl( (ControlHandle) m_macControl , container ) ; - m_macControlIsShown = true ; + m_macControlIsShown = MacIsReallyShown() ; wxAssociateControlWithMacControl( (ControlHandle) m_macControl , this ) ; if ( wxMacSetupControlBackgroundUPP == NULL ) @@ -402,7 +403,8 @@ void wxControl::MacPostControlCreate() UMASetControlTitle( (ControlHandle) m_macControl , wxStripMenuCodes(m_label) ) ; #endif - UMAShowControl( (ControlHandle) m_macControl ) ; + if ( m_macControlIsShown ) + UMAShowControl( (ControlHandle) m_macControl ) ; SetCursor( *wxSTANDARD_CURSOR ) ;