From: Stefan Csomor <csomor@advancedconcepts.ch> Date: Thu, 10 May 2001 06:28:28 +0000 (+0000) Subject: corrected redraw problems in controls (the erroneusly revalidated their draw area... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/e7b596fbffa1ee3eaf372e7c57f26c2bef18d158 corrected redraw problems in controls (the erroneusly revalidated their draw area thus eating other pending redraws git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10098 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/choice.cpp b/src/mac/carbon/choice.cpp index 9c4e7d94a9..9363a6cdda 100644 --- a/src/mac/carbon/choice.cpp +++ b/src/mac/carbon/choice.cpp @@ -27,7 +27,7 @@ short nextMenuId = 100 ; // wxMenu takes the lower ids wxChoice::~wxChoice() { // DeleteMenu( m_macPopUpMenuId ) ; - DisposeMenu( m_macPopUpMenuHandle ) ; + // DisposeMenu( m_macPopUpMenuHandle ) ; } bool wxChoice::Create(wxWindow *parent, wxWindowID id, diff --git a/src/mac/carbon/uma.cpp b/src/mac/carbon/uma.cpp index 19a5053645..3be88ef8ec 100644 --- a/src/mac/carbon/uma.cpp +++ b/src/mac/carbon/uma.cpp @@ -11,6 +11,10 @@ // init +#if !TARGET_CARBON +#define GetControlOwner( control ) (**control).contrlOwner +#endif + static bool sUMAHasAppearance = false ; static long sUMAAppearanceVersion = 0 ; extern int gAGABackgroundColor ; @@ -453,6 +457,8 @@ void UMACloseWindow(WindowRef inWindowRef) void UMAActivateControl( ControlHandle inControl ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -468,10 +474,13 @@ void UMAActivateControl( ControlHandle inControl ) { } #endif + InvalRgn( updateRgn ) ; } void UMADrawControl( ControlHandle inControl ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -487,10 +496,13 @@ void UMADrawControl( ControlHandle inControl ) { } #endif + InvalRgn( updateRgn ) ; } void UMAMoveControl( ControlHandle inControl , short x , short y ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -506,10 +518,13 @@ void UMAMoveControl( ControlHandle inControl , short x , short y ) { } #endif + InvalRgn( updateRgn ) ; } void UMASizeControl( ControlHandle inControl , short x , short y ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -525,10 +540,13 @@ void UMASizeControl( ControlHandle inControl , short x , short y ) { } #endif + InvalRgn( updateRgn ) ; } void UMADeactivateControl( ControlHandle inControl ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -544,6 +562,7 @@ void UMADeactivateControl( ControlHandle inControl ) { } #endif + InvalRgn( updateRgn ) ; } void UMASetThemeWindowBackground (WindowRef inWindow, @@ -640,6 +659,8 @@ void UMADisposeControl (ControlHandle theControl) void UMAHiliteControl (ControlHandle theControl, ControlPartCode hiliteState) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(theControl) , updateRgn ) ; if ( UMAHasAppearance() ) { ::HiliteControl( theControl , hiliteState ) ; @@ -648,11 +669,14 @@ void UMAHiliteControl (ControlHandle theControl, { ::HiliteControl( theControl , hiliteState ) ; } + InvalRgn( updateRgn ) ; } void UMAShowControl (ControlHandle theControl) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(theControl) , updateRgn ) ; if ( UMAHasAppearance() ) { ::ShowControl( theControl ) ; @@ -661,6 +685,7 @@ void UMAShowControl (ControlHandle theControl) { ::ShowControl( theControl ) ; } + InvalRgn( updateRgn ) ; } @@ -913,6 +938,8 @@ void UMAIdleControls (WindowPtr inWindow) void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( inWindow , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -928,6 +955,7 @@ void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn ) { } #endif + InvalRgn( updateRgn ) ; } OSErr UMAGetRootControl( WindowPtr inWindow , ControlHandle *outControl ) diff --git a/src/mac/choice.cpp b/src/mac/choice.cpp index 9c4e7d94a9..9363a6cdda 100644 --- a/src/mac/choice.cpp +++ b/src/mac/choice.cpp @@ -27,7 +27,7 @@ short nextMenuId = 100 ; // wxMenu takes the lower ids wxChoice::~wxChoice() { // DeleteMenu( m_macPopUpMenuId ) ; - DisposeMenu( m_macPopUpMenuHandle ) ; + // DisposeMenu( m_macPopUpMenuHandle ) ; } bool wxChoice::Create(wxWindow *parent, wxWindowID id, diff --git a/src/mac/uma.cpp b/src/mac/uma.cpp index 19a5053645..3be88ef8ec 100644 --- a/src/mac/uma.cpp +++ b/src/mac/uma.cpp @@ -11,6 +11,10 @@ // init +#if !TARGET_CARBON +#define GetControlOwner( control ) (**control).contrlOwner +#endif + static bool sUMAHasAppearance = false ; static long sUMAAppearanceVersion = 0 ; extern int gAGABackgroundColor ; @@ -453,6 +457,8 @@ void UMACloseWindow(WindowRef inWindowRef) void UMAActivateControl( ControlHandle inControl ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -468,10 +474,13 @@ void UMAActivateControl( ControlHandle inControl ) { } #endif + InvalRgn( updateRgn ) ; } void UMADrawControl( ControlHandle inControl ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -487,10 +496,13 @@ void UMADrawControl( ControlHandle inControl ) { } #endif + InvalRgn( updateRgn ) ; } void UMAMoveControl( ControlHandle inControl , short x , short y ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -506,10 +518,13 @@ void UMAMoveControl( ControlHandle inControl , short x , short y ) { } #endif + InvalRgn( updateRgn ) ; } void UMASizeControl( ControlHandle inControl , short x , short y ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -525,10 +540,13 @@ void UMASizeControl( ControlHandle inControl , short x , short y ) { } #endif + InvalRgn( updateRgn ) ; } void UMADeactivateControl( ControlHandle inControl ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -544,6 +562,7 @@ void UMADeactivateControl( ControlHandle inControl ) { } #endif + InvalRgn( updateRgn ) ; } void UMASetThemeWindowBackground (WindowRef inWindow, @@ -640,6 +659,8 @@ void UMADisposeControl (ControlHandle theControl) void UMAHiliteControl (ControlHandle theControl, ControlPartCode hiliteState) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(theControl) , updateRgn ) ; if ( UMAHasAppearance() ) { ::HiliteControl( theControl , hiliteState ) ; @@ -648,11 +669,14 @@ void UMAHiliteControl (ControlHandle theControl, { ::HiliteControl( theControl , hiliteState ) ; } + InvalRgn( updateRgn ) ; } void UMAShowControl (ControlHandle theControl) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( GetControlOwner(theControl) , updateRgn ) ; if ( UMAHasAppearance() ) { ::ShowControl( theControl ) ; @@ -661,6 +685,7 @@ void UMAShowControl (ControlHandle theControl) { ::ShowControl( theControl ) ; } + InvalRgn( updateRgn ) ; } @@ -913,6 +938,8 @@ void UMAIdleControls (WindowPtr inWindow) void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn ) { + RgnHandle updateRgn = NewRgn() ; + GetWindowUpdateRgn( inWindow , updateRgn ) ; #if UMA_USE_APPEARANCE if ( UMAHasAppearance() ) { @@ -928,6 +955,7 @@ void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn ) { } #endif + InvalRgn( updateRgn ) ; } OSErr UMAGetRootControl( WindowPtr inWindow , ControlHandle *outControl )