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 )