reverted some redrawing optimizations due to redraw errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
7f017c64bb
commit
fd2e20ff9c
@ -360,7 +360,15 @@ void wxControl::MacSuperChangedPosition()
|
|||||||
|
|
||||||
if ( mac_x != former_mac_x || mac_y != former_mac_y )
|
if ( mac_x != former_mac_x || mac_y != former_mac_y )
|
||||||
{
|
{
|
||||||
|
{
|
||||||
|
Rect inval = { former_mac_y , former_mac_x , former_mac_y + m_height , former_mac_x + m_width } ;
|
||||||
|
InvalWindowRect( rootwindow , &inval ) ;
|
||||||
|
}
|
||||||
UMAMoveControl( m_macControl , mac_x + m_macHorizontalBorder , mac_y + m_macVerticalBorder ) ;
|
UMAMoveControl( m_macControl , mac_x + m_macHorizontalBorder , mac_y + m_macVerticalBorder ) ;
|
||||||
|
{
|
||||||
|
Rect inval = { mac_y , mac_x , mac_y + m_height , mac_x + m_width } ;
|
||||||
|
InvalWindowRect( rootwindow , &inval ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) )
|
if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) )
|
||||||
{
|
{
|
||||||
@ -488,7 +496,15 @@ void wxControl::DoSetSize(int x, int y,
|
|||||||
|
|
||||||
if ( mac_x != former_mac_x || mac_y != former_mac_y )
|
if ( mac_x != former_mac_x || mac_y != former_mac_y )
|
||||||
{
|
{
|
||||||
|
{
|
||||||
|
Rect inval = { former_mac_y , former_mac_x , former_mac_y + m_height , former_mac_x + m_width } ;
|
||||||
|
InvalWindowRect( macrootwindow, &inval ) ;
|
||||||
|
}
|
||||||
UMAMoveControl( m_macControl , mac_x + m_macHorizontalBorder , mac_y + m_macVerticalBorder ) ;
|
UMAMoveControl( m_macControl , mac_x + m_macHorizontalBorder , mac_y + m_macVerticalBorder ) ;
|
||||||
|
{
|
||||||
|
Rect inval = { mac_y , mac_x , mac_y + m_height , mac_x + m_width } ;
|
||||||
|
InvalWindowRect(macrootwindow, &inval ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( actualX != former_x || actualY != former_y )
|
if ( actualX != former_x || actualY != former_y )
|
||||||
@ -498,9 +514,9 @@ void wxControl::DoSetSize(int x, int y,
|
|||||||
|
|
||||||
MacRepositionScrollBars() ;
|
MacRepositionScrollBars() ;
|
||||||
// To consider -> should the parameters be the effective or the virtual coordinates (AdjustForParent..)
|
// To consider -> should the parameters be the effective or the virtual coordinates (AdjustForParent..)
|
||||||
wxMoveEvent event(wxPoint(m_x, m_y), m_windowId);
|
wxMoveEvent event(wxPoint(m_x, m_y), m_windowId);
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
GetEventHandler()->ProcessEvent(event);
|
GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
if ( actualWidth != former_w || actualHeight != former_h )
|
if ( actualWidth != former_w || actualHeight != former_h )
|
||||||
{
|
{
|
||||||
@ -518,9 +534,9 @@ void wxControl::DoSetSize(int x, int y,
|
|||||||
}
|
}
|
||||||
|
|
||||||
MacRepositionScrollBars() ;
|
MacRepositionScrollBars() ;
|
||||||
wxSizeEvent event(wxSize(m_width, m_height), m_windowId);
|
wxSizeEvent event(wxSize(m_width, m_height), m_windowId);
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
GetEventHandler()->ProcessEvent(event);
|
GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) )
|
if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) )
|
||||||
{
|
{
|
||||||
|
@ -643,7 +643,7 @@ void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
|||||||
if ( focus.Ok() )
|
if ( focus.Ok() )
|
||||||
{
|
{
|
||||||
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
||||||
// ClipRect( &clientrect ) ;
|
ClipRect( &clientrect ) ;
|
||||||
InvalWindowRect( GetMacRootWindow() , &clientrect ) ;
|
InvalWindowRect( GetMacRootWindow() , &clientrect ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -678,7 +678,7 @@ void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
|||||||
if ( focus.Ok() )
|
if ( focus.Ok() )
|
||||||
{
|
{
|
||||||
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
||||||
// ClipRect( &clientrect ) ;
|
ClipRect( &clientrect ) ;
|
||||||
InvalWindowRect( GetMacRootWindow() , &clientrect ) ;
|
InvalWindowRect( GetMacRootWindow() , &clientrect ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -916,7 +916,7 @@ void wxWindow::Refresh(bool eraseBack, const wxRect *rect)
|
|||||||
if ( focus.Ok() )
|
if ( focus.Ok() )
|
||||||
{
|
{
|
||||||
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
||||||
// ClipRect( &clientrect ) ;
|
ClipRect( &clientrect ) ;
|
||||||
|
|
||||||
if ( rect )
|
if ( rect )
|
||||||
{
|
{
|
||||||
@ -1872,7 +1872,7 @@ void wxWindow::MacRedraw( RgnHandle updatergn , long time)
|
|||||||
RGBBackColor( &m_backgroundColour.GetPixel()) ;
|
RGBBackColor( &m_backgroundColour.GetPixel()) ;
|
||||||
}
|
}
|
||||||
// subtract all non transparent children from updatergn
|
// subtract all non transparent children from updatergn
|
||||||
|
|
||||||
RgnHandle childarea = NewRgn() ;
|
RgnHandle childarea = NewRgn() ;
|
||||||
for (wxNode *node = GetChildren().First(); node; node = node->Next())
|
for (wxNode *node = GetChildren().First(); node; node = node->Next())
|
||||||
{
|
{
|
||||||
@ -1880,7 +1880,7 @@ void wxWindow::MacRedraw( RgnHandle updatergn , long time)
|
|||||||
// eventually test for transparent windows
|
// eventually test for transparent windows
|
||||||
if ( child->GetMacRootWindow() == window && child->IsShown() )
|
if ( child->GetMacRootWindow() == window && child->IsShown() )
|
||||||
{
|
{
|
||||||
if ( !child->IsKindOf( CLASSINFO( wxControl ) ) && ((wxControl*)child)->GetMacControl() )
|
if ( child->GetBackgroundColour() != m_backgroundColour && !child->IsKindOf( CLASSINFO( wxControl ) ) && ((wxControl*)child)->GetMacControl() )
|
||||||
{
|
{
|
||||||
SetRectRgn( childarea , child->m_x , child->m_y , child->m_x + child->m_width , child->m_y + child->m_height ) ;
|
SetRectRgn( childarea , child->m_x , child->m_y , child->m_x + child->m_width , child->m_y + child->m_height ) ;
|
||||||
DiffRgn( ownUpdateRgn , childarea , ownUpdateRgn ) ;
|
DiffRgn( ownUpdateRgn , childarea , ownUpdateRgn ) ;
|
||||||
|
@ -360,7 +360,15 @@ void wxControl::MacSuperChangedPosition()
|
|||||||
|
|
||||||
if ( mac_x != former_mac_x || mac_y != former_mac_y )
|
if ( mac_x != former_mac_x || mac_y != former_mac_y )
|
||||||
{
|
{
|
||||||
|
{
|
||||||
|
Rect inval = { former_mac_y , former_mac_x , former_mac_y + m_height , former_mac_x + m_width } ;
|
||||||
|
InvalWindowRect( rootwindow , &inval ) ;
|
||||||
|
}
|
||||||
UMAMoveControl( m_macControl , mac_x + m_macHorizontalBorder , mac_y + m_macVerticalBorder ) ;
|
UMAMoveControl( m_macControl , mac_x + m_macHorizontalBorder , mac_y + m_macVerticalBorder ) ;
|
||||||
|
{
|
||||||
|
Rect inval = { mac_y , mac_x , mac_y + m_height , mac_x + m_width } ;
|
||||||
|
InvalWindowRect( rootwindow , &inval ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) )
|
if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) )
|
||||||
{
|
{
|
||||||
@ -488,7 +496,15 @@ void wxControl::DoSetSize(int x, int y,
|
|||||||
|
|
||||||
if ( mac_x != former_mac_x || mac_y != former_mac_y )
|
if ( mac_x != former_mac_x || mac_y != former_mac_y )
|
||||||
{
|
{
|
||||||
|
{
|
||||||
|
Rect inval = { former_mac_y , former_mac_x , former_mac_y + m_height , former_mac_x + m_width } ;
|
||||||
|
InvalWindowRect( macrootwindow, &inval ) ;
|
||||||
|
}
|
||||||
UMAMoveControl( m_macControl , mac_x + m_macHorizontalBorder , mac_y + m_macVerticalBorder ) ;
|
UMAMoveControl( m_macControl , mac_x + m_macHorizontalBorder , mac_y + m_macVerticalBorder ) ;
|
||||||
|
{
|
||||||
|
Rect inval = { mac_y , mac_x , mac_y + m_height , mac_x + m_width } ;
|
||||||
|
InvalWindowRect(macrootwindow, &inval ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( actualX != former_x || actualY != former_y )
|
if ( actualX != former_x || actualY != former_y )
|
||||||
@ -498,9 +514,9 @@ void wxControl::DoSetSize(int x, int y,
|
|||||||
|
|
||||||
MacRepositionScrollBars() ;
|
MacRepositionScrollBars() ;
|
||||||
// To consider -> should the parameters be the effective or the virtual coordinates (AdjustForParent..)
|
// To consider -> should the parameters be the effective or the virtual coordinates (AdjustForParent..)
|
||||||
wxMoveEvent event(wxPoint(m_x, m_y), m_windowId);
|
wxMoveEvent event(wxPoint(m_x, m_y), m_windowId);
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
GetEventHandler()->ProcessEvent(event);
|
GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
if ( actualWidth != former_w || actualHeight != former_h )
|
if ( actualWidth != former_w || actualHeight != former_h )
|
||||||
{
|
{
|
||||||
@ -518,9 +534,9 @@ void wxControl::DoSetSize(int x, int y,
|
|||||||
}
|
}
|
||||||
|
|
||||||
MacRepositionScrollBars() ;
|
MacRepositionScrollBars() ;
|
||||||
wxSizeEvent event(wxSize(m_width, m_height), m_windowId);
|
wxSizeEvent event(wxSize(m_width, m_height), m_windowId);
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
GetEventHandler()->ProcessEvent(event);
|
GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) )
|
if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) )
|
||||||
{
|
{
|
||||||
|
@ -643,7 +643,7 @@ void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
|||||||
if ( focus.Ok() )
|
if ( focus.Ok() )
|
||||||
{
|
{
|
||||||
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
||||||
// ClipRect( &clientrect ) ;
|
ClipRect( &clientrect ) ;
|
||||||
InvalWindowRect( GetMacRootWindow() , &clientrect ) ;
|
InvalWindowRect( GetMacRootWindow() , &clientrect ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -678,7 +678,7 @@ void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
|||||||
if ( focus.Ok() )
|
if ( focus.Ok() )
|
||||||
{
|
{
|
||||||
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
||||||
// ClipRect( &clientrect ) ;
|
ClipRect( &clientrect ) ;
|
||||||
InvalWindowRect( GetMacRootWindow() , &clientrect ) ;
|
InvalWindowRect( GetMacRootWindow() , &clientrect ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -916,7 +916,7 @@ void wxWindow::Refresh(bool eraseBack, const wxRect *rect)
|
|||||||
if ( focus.Ok() )
|
if ( focus.Ok() )
|
||||||
{
|
{
|
||||||
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
Rect clientrect = { 0 , 0 , m_height , m_width } ;
|
||||||
// ClipRect( &clientrect ) ;
|
ClipRect( &clientrect ) ;
|
||||||
|
|
||||||
if ( rect )
|
if ( rect )
|
||||||
{
|
{
|
||||||
@ -1872,7 +1872,7 @@ void wxWindow::MacRedraw( RgnHandle updatergn , long time)
|
|||||||
RGBBackColor( &m_backgroundColour.GetPixel()) ;
|
RGBBackColor( &m_backgroundColour.GetPixel()) ;
|
||||||
}
|
}
|
||||||
// subtract all non transparent children from updatergn
|
// subtract all non transparent children from updatergn
|
||||||
|
|
||||||
RgnHandle childarea = NewRgn() ;
|
RgnHandle childarea = NewRgn() ;
|
||||||
for (wxNode *node = GetChildren().First(); node; node = node->Next())
|
for (wxNode *node = GetChildren().First(); node; node = node->Next())
|
||||||
{
|
{
|
||||||
@ -1880,7 +1880,7 @@ void wxWindow::MacRedraw( RgnHandle updatergn , long time)
|
|||||||
// eventually test for transparent windows
|
// eventually test for transparent windows
|
||||||
if ( child->GetMacRootWindow() == window && child->IsShown() )
|
if ( child->GetMacRootWindow() == window && child->IsShown() )
|
||||||
{
|
{
|
||||||
if ( !child->IsKindOf( CLASSINFO( wxControl ) ) && ((wxControl*)child)->GetMacControl() )
|
if ( child->GetBackgroundColour() != m_backgroundColour && !child->IsKindOf( CLASSINFO( wxControl ) ) && ((wxControl*)child)->GetMacControl() )
|
||||||
{
|
{
|
||||||
SetRectRgn( childarea , child->m_x , child->m_y , child->m_x + child->m_width , child->m_y + child->m_height ) ;
|
SetRectRgn( childarea , child->m_x , child->m_y , child->m_x + child->m_width , child->m_y + child->m_height ) ;
|
||||||
DiffRgn( ownUpdateRgn , childarea , ownUpdateRgn ) ;
|
DiffRgn( ownUpdateRgn , childarea , ownUpdateRgn ) ;
|
||||||
|
Loading…
Reference in New Issue
Block a user