From: David Elliott Date: Sat, 18 Aug 2007 05:39:32 +0000 (+0000) Subject: Improve the tracing of the tracking rect manager and mouse movement synthesizer. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/18b32eb5b56cde55d91a4796ac167d9c61180770?ds=inline Improve the tracing of the tracking rect manager and mouse movement synthesizer. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/cocoa/window.mm b/src/cocoa/window.mm index d4b353822c..194d5685bc 100644 --- a/src/cocoa/window.mm +++ b/src/cocoa/window.mm @@ -711,7 +711,7 @@ bool wxWindowCocoa::Cocoa_mouseEntered(WX_NSEvent theEvent) wxMouseEvent event(wxEVT_ENTER_WINDOW); InitMouseEvent(event,theEvent); - wxLogTrace(wxTRACE_COCOA,wxT("wxwin=%p Mouse Entered @%d,%d"),this,event.m_x,event.m_y); + wxLogTrace(wxTRACE_COCOA_TrackingRect,wxT("wxwin=%p Mouse Entered TR#%d @%d,%d"),this,[theEvent trackingNumber], event.m_x,event.m_y); return GetEventHandler()->ProcessEvent(event); } else @@ -726,7 +726,7 @@ bool wxWindowCocoa::Cocoa_mouseExited(WX_NSEvent theEvent) wxMouseEvent event(wxEVT_LEAVE_WINDOW); InitMouseEvent(event,theEvent); - wxLogTrace(wxTRACE_COCOA,wxT("wxwin=%p Mouse Exited @%d,%d"),this,event.m_x,event.m_y); + wxLogTrace(wxTRACE_COCOA_TrackingRect,wxT("wxwin=%p Mouse Exited TR#%d @%d,%d"),this,[theEvent trackingNumber],event.m_x,event.m_y); return GetEventHandler()->ProcessEvent(event); } else @@ -1412,11 +1412,12 @@ wxWindow* wxFindWindowAtPointer(wxPoint& pt) return NULL; } - // ======================================================================== // wxCocoaMouseMovedEventSynthesizer // ======================================================================== +#define wxTRACE_COCOA_MouseMovedSynthesizer wxT("COCOA_MouseMovedSynthesizer") + /* This class registers one run loop observer to cover all windows registered with it. * It will register the observer when the first view is registerd and unregister the * observer when the last view is unregistered. @@ -1447,7 +1448,7 @@ protected: void wxCocoaMouseMovedEventSynthesizer::RegisterWxCocoaView(wxCocoaNSView *aView) { m_registeredViews.push_back(aView); - wxLogTrace(wxTRACE_COCOA_TrackingRect, wxT("Registered wxCocoaNSView=%p"), aView); + wxLogTrace(wxTRACE_COCOA_MouseMovedSynthesizer, wxT("Registered wxCocoaNSView=%p"), aView); if(!m_registeredViews.empty() && m_runLoopObserver == NULL) { @@ -1458,7 +1459,7 @@ void wxCocoaMouseMovedEventSynthesizer::RegisterWxCocoaView(wxCocoaNSView *aView void wxCocoaMouseMovedEventSynthesizer::UnregisterWxCocoaView(wxCocoaNSView *aView) { m_registeredViews.remove(aView); - wxLogTrace(wxTRACE_COCOA_TrackingRect, wxT("Unregistered wxCocoaNSView=%p"), aView); + wxLogTrace(wxTRACE_COCOA_MouseMovedSynthesizer, wxT("Unregistered wxCocoaNSView=%p"), aView); if(m_registeredViews.empty() && m_runLoopObserver != NULL) { RemoveRunLoopObserver(); @@ -1568,6 +1569,7 @@ void wxCocoaTrackingRectManager::ClearTrackingRect() { [m_window->GetNSView() removeTrackingRect:m_trackingRectTag]; m_isTrackingRectActive = false; + wxLogTrace(wxTRACE_COCOA_TrackingRect, wxT("%s@%p: Removed tracking rect #%d"), m_window->GetClassInfo()->GetClassName(), m_window, m_trackingRectTag); } // If we were doing periodic events we need to clear those too StopSynthesizingEvents(); @@ -1584,10 +1586,14 @@ void wxCocoaTrackingRectManager::BuildTrackingRect() wxAutoNSAutoreleasePool pool; wxASSERT_MSG(!m_isTrackingRectActive, wxT("Tracking rect was not cleared")); - if([m_window->GetNSView() window] != nil) + + NSView *theView = m_window->GetNSView(); + + if([theView window] != nil) { - m_trackingRectTag = [m_window->GetNSView() addTrackingRect:[m_window->GetNSView() visibleRect] owner:m_window->GetNSView() userData:NULL assumeInside:NO]; + m_trackingRectTag = [theView addTrackingRect:[theView visibleRect] owner:theView userData:NULL assumeInside:NO]; m_isTrackingRectActive = true; + wxLogTrace(wxTRACE_COCOA_TrackingRect, wxT("%s@%p: Added tracking rect #%d"), m_window->GetClassInfo()->GetClassName(), m_window, m_trackingRectTag); } }