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
This commit is contained in:
@@ -35,6 +35,11 @@
|
|||||||
#import <AppKit/NSBezierPath.h>
|
#import <AppKit/NSBezierPath.h>
|
||||||
#endif //def WXCOCOA_FILL_DUMMY_VIEW
|
#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
|
// wxWindowCocoaHider
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
@@ -356,12 +361,8 @@ bool wxWindowCocoa::Cocoa_drawRect(const NSRect &rect)
|
|||||||
const NSRect *rects = ▭ // The bounding box of the region
|
const NSRect *rects = ▭ // The bounding box of the region
|
||||||
int countRects = 1;
|
int countRects = 1;
|
||||||
// Try replacing the larger rectangle with a list of smaller ones:
|
// Try replacing the larger rectangle with a list of smaller ones:
|
||||||
NS_DURING
|
if ([GetNSView() respondsToSelector:@selector(getRectsBeingDrawn:count:)])
|
||||||
//getRectsBeingDrawn:count: is a optimization that is only available on
|
[GetNSView() getRectsBeingDrawn:&rects count:&countRects];
|
||||||
//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
|
|
||||||
m_updateRegion = wxRegion(rects,countRects);
|
m_updateRegion = wxRegion(rects,countRects);
|
||||||
|
|
||||||
wxPaintEvent event(m_windowId);
|
wxPaintEvent event(m_windowId);
|
||||||
|
Reference in New Issue
Block a user