From 8996460cb98aadf153a61d749b009e436dbb0fd7 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sun, 13 Sep 2009 17:34:51 +0000 Subject: [PATCH] avoiding potential infinite recursion git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/osx/iphone/window.mm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/osx/iphone/window.mm b/src/osx/iphone/window.mm index fba3d8c8f7..2858e3ccc3 100644 --- a/src/osx/iphone/window.mm +++ b/src/osx/iphone/window.mm @@ -368,8 +368,14 @@ wxWidgetIPhoneImpl::~wxWidgetIPhoneImpl() bool wxWidgetIPhoneImpl::IsVisible() const { - // TODO reflect Superviews state - return [m_osxView isHidden] == NO; + UIView* view = m_osxView; + while ( view != nil && [view isHidden] == NO ) + { + view = [view superview]; + if (view != nil && [view isHidden]) + NSLog(@"visible test failed for %@",view); + } + return view == nil; } void wxWidgetIPhoneImpl::SetVisibility( bool visible ) @@ -706,9 +712,12 @@ void wxWidgetIPhoneImpl::drawRect(CGRect* rect, WXWidget slf, void *WXUNUSED(_cm // call super SEL _cmd = @selector(drawRect:); wxOSX_DrawRectHandlerPtr superimpl = (wxOSX_DrawRectHandlerPtr) [[slf superclass] instanceMethodForSelector:_cmd]; - superimpl(slf, _cmd, *rect); - CGContextRestoreGState( context ); - CGContextSaveGState( context ); + if ( superimpl != wxOSX_drawRect ) + { + superimpl(slf, _cmd, *rect); + CGContextRestoreGState( context ); + CGContextSaveGState( context ); + } } wxpeer->MacPaintChildrenBorders(); wxpeer->MacSetCGContextRef( NULL ); -- 2.45.2