From 5dc471408f72c31e7bebcd9fcdcc2083f7c1da45 Mon Sep 17 00:00:00 2001 From: David Elliott Date: Fri, 22 Oct 2004 16:07:31 +0000 Subject: [PATCH] Cleaned up getRectsBeingDrawn:count: related code. * Removed the exception handler; it's not needed anymore (thanks Ryan). * Split the if statement and then case into two lines instead of one. * Took some of the suggestions from the cocoa-dev mailing list: - Changed code to use normal messaging syntax. - Provided a category interface to silence the compiler warning on 10.2. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30067 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/cocoa/window.mm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/cocoa/window.mm b/src/cocoa/window.mm index 630b14bd65..417301f392 100644 --- a/src/cocoa/window.mm +++ b/src/cocoa/window.mm @@ -35,6 +35,11 @@ #import #endif //def WXCOCOA_FILL_DUMMY_VIEW +// A category for methods that are only present in Panther's SDK +@interface NSView(wxNSViewPrePantherCompatibility) +- (void)getRectsBeingDrawn:(const NSRect **)rects count:(int *)count; +@end + // ======================================================================== // wxWindowCocoaHider // ======================================================================== @@ -356,12 +361,8 @@ bool wxWindowCocoa::Cocoa_drawRect(const NSRect &rect) const NSRect *rects = ▭ // The bounding box of the region int countRects = 1; // Try replacing the larger rectangle with a list of smaller ones: -NS_DURING - //getRectsBeingDrawn:count: is a optimization that is only available on - //Panthar (10.3) and higher. Check to see if it supports it - - if ( [GetNSView() respondsToSelector:@selector(getRectsBeingDrawn:count:)] ) objc_msgSend(GetNSView(),@selector(getRectsBeingDrawn:count:),&rects,&countRects); -NS_HANDLER -NS_ENDHANDLER + if ([GetNSView() respondsToSelector:@selector(getRectsBeingDrawn:count:)]) + [GetNSView() getRectsBeingDrawn:&rects count:&countRects]; m_updateRegion = wxRegion(rects,countRects); wxPaintEvent event(m_windowId); -- 2.45.2