From c29d47c8c115b58caed28d25abba73ce7774d9eb Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 18 Sep 2007 18:34:16 +0000 Subject: [PATCH] fixing bug 1782738 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@48773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/carbon/glcanvas.cpp | 42 +++++++------------------------------ 1 file changed, 8 insertions(+), 34 deletions(-) diff --git a/src/mac/carbon/glcanvas.cpp b/src/mac/carbon/glcanvas.cpp index b46e89a5ae..92e3521499 100644 --- a/src/mac/carbon/glcanvas.cpp +++ b/src/mac/carbon/glcanvas.cpp @@ -289,6 +289,7 @@ void wxGLCanvas::SetViewport() if ( !m_macCanvasIsShown ) parms[0] += 20000 ; aglSetInteger( m_glContext->m_glContext , AGL_BUFFER_RECT , parms ) ; + aglUpdateContext(m_glContext->m_glContext); } #endif } @@ -302,8 +303,6 @@ void wxGLCanvas::MacUpdateView() { if (m_glContext) { - UpdateContext(); - m_glContext->SetCurrent(); SetViewport(); } } @@ -338,44 +337,19 @@ bool wxGLCanvas::Show(bool show) { if ( !wxWindow::Show( show ) ) return false ; -/* - if ( !show ) - { - if ( m_macCanvasIsShown ) - { - m_macCanvasIsShown = false ; - SetViewport() ; - } - } - else - { - if ( m_peer->IsVisible()&& !m_macCanvasIsShown ) - { - m_macCanvasIsShown = true ; - SetViewport() ; - } - } -*/ + + // call directly to avoid redraw glitches + MacVisibilityChanged(); + return true ; } void wxGLCanvas::MacVisibilityChanged() { - if ( !MacIsReallyShown() ) + if ( MacIsReallyShown() != m_macCanvasIsShown ) { - if ( m_macCanvasIsShown ) - { - m_macCanvasIsShown = false ; - SetViewport() ; - } - } - else - { - if ( !m_macCanvasIsShown ) - { - m_macCanvasIsShown = true ; - SetViewport() ; - } + m_macCanvasIsShown = !m_macCanvasIsShown; + MacUpdateView(); } wxWindowMac::MacVisibilityChanged() ; }