added internal callback when toplevel windows move for opengl canvas

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2001-11-04 20:54:39 +00:00
parent fce5f505f1
commit a3bf4a6263
4 changed files with 64 additions and 0 deletions

View File

@@ -263,6 +263,11 @@ void wxGLCanvas::SetViewport()
}
void wxGLCanvas::OnSize(wxSizeEvent& event)
{
MacUpdateView() ;
}
void wxGLCanvas::MacUpdateView()
{
if (m_glContext)
{
@@ -277,6 +282,18 @@ void wxGLCanvas::OnSize(wxSizeEvent& event)
}
}
void wxGLCanvas::MacSuperChangedPosition()
{
MacUpdateView() ;
wxWindow::MacSuperChangedPosition() ;
}
void wxGLCanvas::MacTopLevelWindowChangedPosition()
{
MacUpdateView() ;
wxWindow::MacTopLevelWindowChangedPosition() ;
}
void wxGLCanvas::SetCurrent()
{
if (m_glContext)

View File

@@ -617,6 +617,8 @@ void wxWindowMac::DoMoveWindow(int x, int y, int width, int height)
frame->PositionStatusBar();
frame->PositionToolBar();
}
if ( doMove )
wxWindowMac::MacTopLevelWindowChangedPosition() ; // like this only children will be notified
}
else
{
@@ -2194,6 +2196,19 @@ void wxWindowMac::MacSuperChangedPosition()
}
}
void wxWindowMac::MacTopLevelWindowChangedPosition()
{
// only screen-absolute structures have to be moved i.e. glcanvas
wxNode *node = GetChildren().First();
while ( node )
{
wxWindowMac *child = (wxWindowMac *)node->Data();
child->MacTopLevelWindowChangedPosition() ;
node = node->Next();
}
}
bool wxWindowMac::MacSetPortFocusParams( const Point & localOrigin, const Rect & clipRect, WindowRef window , wxWindowMac* win )
{
if ( window == NULL )

View File

@@ -263,6 +263,11 @@ void wxGLCanvas::SetViewport()
}
void wxGLCanvas::OnSize(wxSizeEvent& event)
{
MacUpdateView() ;
}
void wxGLCanvas::MacUpdateView()
{
if (m_glContext)
{
@@ -277,6 +282,18 @@ void wxGLCanvas::OnSize(wxSizeEvent& event)
}
}
void wxGLCanvas::MacSuperChangedPosition()
{
MacUpdateView() ;
wxWindow::MacSuperChangedPosition() ;
}
void wxGLCanvas::MacTopLevelWindowChangedPosition()
{
MacUpdateView() ;
wxWindow::MacTopLevelWindowChangedPosition() ;
}
void wxGLCanvas::SetCurrent()
{
if (m_glContext)

View File

@@ -617,6 +617,8 @@ void wxWindowMac::DoMoveWindow(int x, int y, int width, int height)
frame->PositionStatusBar();
frame->PositionToolBar();
}
if ( doMove )
wxWindowMac::MacTopLevelWindowChangedPosition() ; // like this only children will be notified
}
else
{
@@ -2194,6 +2196,19 @@ void wxWindowMac::MacSuperChangedPosition()
}
}
void wxWindowMac::MacTopLevelWindowChangedPosition()
{
// only screen-absolute structures have to be moved i.e. glcanvas
wxNode *node = GetChildren().First();
while ( node )
{
wxWindowMac *child = (wxWindowMac *)node->Data();
child->MacTopLevelWindowChangedPosition() ;
node = node->Next();
}
}
bool wxWindowMac::MacSetPortFocusParams( const Point & localOrigin, const Rect & clipRect, WindowRef window , wxWindowMac* win )
{
if ( window == NULL )