]> git.saurik.com Git - wxWidgets.git/commitdiff
Reduce flicker when removing wxNotebook page.
authorVáclav Slavík <vslavik@fastmail.fm>
Wed, 1 Sep 2010 13:28:43 +0000 (13:28 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Wed, 1 Sep 2010 13:28:43 +0000 (13:28 +0000)
wxMSW implementation hides all pages except the selected one. But when
removing selected page from the control, this invariant is temporarily
broken and this results in visible flicker. Hiding the page as soon as
it gets removed fixes it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/notebook.cpp

index b199c98ab9ea8ce90c5ea660c32e4c7f82e48ed0..90edb491b32dc46aed78e90d581380229525e52f 100644 (file)
@@ -688,6 +688,10 @@ wxNotebookPage *wxNotebook::DoRemovePage(size_t nPage)
     if ( !pageRemoved )
         return NULL;
 
     if ( !pageRemoved )
         return NULL;
 
+    // hide the removed page to maintain the invariant that only the
+    // selected page is visible and others are hidden:
+    pageRemoved->Show(false);
+
     TabCtrl_DeleteItem(GetHwnd(), nPage);
 
     if ( m_pages.IsEmpty() )
     TabCtrl_DeleteItem(GetHwnd(), nPage);
 
     if ( m_pages.IsEmpty() )