]> git.saurik.com Git - wxWidgets.git/commitdiff
supporting events also for root control (needed for event handling of mouse and paint...
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 1 Apr 2004 15:24:19 +0000 (15:24 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 1 Apr 2004 15:24:19 +0000 (15:24 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26554 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/window.cpp

index c30e7a0467f106e922d1be6984865099f2929d2a..f80f5edf71900b1cdffbd61f93e4ff9a4a0ee403 100644 (file)
@@ -149,7 +149,7 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
                 // GrafPtr myport = cEvent.GetParameter<GrafPtr>(kEventParamGrafPort,typeGrafPtr) ;
 
 #if 0 
-                // in case we would need a coregraphics compliant background erase first
+              // in case we would need a coregraphics compliant background erase first
                 // now usable to track redraws
                 CGContextRef cgContext = cEvent.GetParameter<CGContextRef>(kEventParamCGContextRef) ;
                 if ( thisWindow->MacIsUserPane() )
@@ -540,6 +540,7 @@ wxWindowMac::~wxWindowMac()
 
 void wxWindowMac::MacInstallEventHandler()
 {
+    wxAssociateControlWithMacControl( (ControlRef) m_macControl , this ) ;
     InstallControlEventHandler( (ControlRef) m_macControl, GetwxMacWindowEventHandlerUPP(),
         GetEventTypeCount(eventList), eventList, this, 
         (EventHandlerRef *)&m_macControlEventHandler);
@@ -610,7 +611,6 @@ void wxWindowMac::MacPostControlCreate(const wxPoint& pos, const wxSize& size)
 {
     wxASSERT_MSG( (ControlRef) m_macControl != NULL , wxT("No valid mac control") ) ;
 
-    wxAssociateControlWithMacControl( (ControlRef) m_macControl , this ) ;
     ::SetControlReference( (ControlRef) m_macControl , (long) this ) ;
 
     MacInstallEventHandler();
@@ -1068,7 +1068,8 @@ void wxWindowMac::MacWindowToRootWindow( int *x , int *y ) const
     if ( x ) pt.x = *x ;
     if ( y ) pt.y = *y ;
 
-    HIViewConvertPoint( &pt , (ControlRef) m_macControl , (ControlRef) MacGetTopLevelWindow()->GetHandle()  ) ;
+    if ( !IsTopLevel() )
+        HIViewConvertPoint( &pt , (ControlRef) m_macControl , (ControlRef) MacGetTopLevelWindow()->GetHandle()  ) ;
     
     if ( x ) *x = (int) pt.x ;
     if ( y ) *y = (int) pt.y ;
@@ -1100,7 +1101,8 @@ void wxWindowMac::MacRootWindowToWindow( int *x , int *y ) const
     if ( x ) pt.x = *x ;
     if ( y ) pt.y = *y ;
 
-    HIViewConvertPoint( &pt , (ControlRef) MacGetTopLevelWindow()->GetHandle()  , (ControlRef) m_macControl ) ;
+    if ( !IsTopLevel() )
+        HIViewConvertPoint( &pt , (ControlRef) MacGetTopLevelWindow()->GetHandle()  , (ControlRef) m_macControl ) ;
     
     if ( x ) *x = (int) pt.x ;
     if ( y ) *y = (int) pt.y ;
@@ -2390,10 +2392,6 @@ wxRegion wxWindowMac::MacGetVisibleRegion( bool includeOuterStructures )
  */
 bool wxWindowMac::MacDoRedraw( WXHRGN updatergnr , long time ) 
 {
-    // we let the OS handle root control redraws
-    if ( m_macControl == MacGetTopLevelWindow()->GetHandle() )
-        return false ;
-        
     RgnHandle updatergn = (RgnHandle) updatergnr ;
     bool handled = false ;