From b77aa4782db731ee3e1226a298b3c6bc52f6d68b Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Mon, 5 Nov 2018 14:37:54 +0100 Subject: [PATCH] Forcing paint after show on 10.14 layer-backed views do not get a refresh when shown, but wx-user code might depend on the assumption that they do --- src/osx/cocoa/window.mm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/osx/cocoa/window.mm b/src/osx/cocoa/window.mm index b32f5aef66..3695a1b185 100644 --- a/src/osx/cocoa/window.mm +++ b/src/osx/cocoa/window.mm @@ -2573,6 +2573,10 @@ bool wxWidgetCocoaImpl::IsVisible() const void wxWidgetCocoaImpl::SetVisibility( bool visible ) { [m_osxView setHidden:(visible ? NO:YES)]; + + // trigger redraw upon shown for layer-backed views + if( m_osxView.layer && !m_osxView.isHiddenOrHasHiddenAncestor ) + SetNeedsDisplay(NULL); } double wxWidgetCocoaImpl::GetContentScaleFactor() const @@ -3028,7 +3032,7 @@ static void SetSubviewsNeedDisplay( NSView *view ) { for ( NSView *sub in view.subviews ) { - if ( !sub.layer ) + if ( sub.isHidden || !sub.layer ) continue; [sub setNeedsDisplay:YES];