]> git.saurik.com Git - wxWidgets.git/commitdiff
Added UpdateSize to wxSplitterWindow, to allow an app
authorJulian Smart <julian@anthemion.co.uk>
Thu, 25 Mar 2004 13:14:54 +0000 (13:14 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Thu, 25 Mar 2004 13:14:54 +0000 (13:14 +0000)
to force pane resizing _before_ showing the window.
Added a call to UpdateSize from helpfrm.cpp. Without
this, the flicker is horrible.

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

include/wx/generic/splitter.h
src/generic/splitter.cpp
src/html/helpctrl.cpp
src/html/helpfrm.cpp

index 1162e887da4772b636f64456ec6e7c10c2a5ed85..61e4c08008f18da636658118b9aa3a8e60ae0ceb 100644 (file)
@@ -129,6 +129,11 @@ public:
     // parameter should be NULL)
     bool ReplaceWindow(wxWindow *winOld, wxWindow *winNew);
 
+    // Make sure the child window sizes are updated. This is useful
+    // for reducing flicker by updating the sizes before a
+    // window is shown, if you know the overall size is correct.
+    void UpdateSize();
+
     // Is the window split?
     bool IsSplit() const { return (m_windowTwo != NULL); }
 
index 4269063c1d7a14f4d835476b613af11816a760e5..1d6a539568c2243723876f66882de18193ec99eb 100644 (file)
@@ -801,6 +801,16 @@ void wxSplitterWindow::SetSashPosition(int position, bool redraw)
     }
 }
 
+// Make sure the child window sizes are updated. This is useful
+// for reducing flicker by updating the sizes before a
+// window is shown, if you know the overall size is correct.
+void wxSplitterWindow::UpdateSize()
+{
+    m_checkRequestedSashPosition = true;
+    SizeWindows();
+    m_checkRequestedSashPosition = false;
+}
+
 bool wxSplitterWindow::DoSendEvent(wxSplitterEvent& event)
 {
     return !GetEventHandler()->ProcessEvent(event) || event.IsAllowed();
index 2900d99d31ec39789cb912f13e478878e38c6db5..5f0bc3fd68e44db3555a3f40bc13e88cb4953547 100644 (file)
@@ -148,6 +148,7 @@ void wxHtmlHelpController::CreateHelpWindow()
 
     m_helpFrame->Create(NULL, wxID_HTML_HELPFRAME, wxEmptyString, m_FrameStyle);
     m_helpFrame->SetTitleFormat(m_titleFormat);
+
     m_helpFrame->Show(TRUE);
 }
 
index f8d35f3a50e14cc6e4cb82f39827e8cc867a86e9..ac2b31819d1de256432e9d06509c7fe269a302a2 100644 (file)
@@ -490,6 +490,13 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id,
         }
     }
     
+    // Reduce flicker by updating the splitter pane sizes before the
+    // frame is shown
+    wxSizeEvent sizeEvent(GetSize(), GetId());
+    ProcessEvent(sizeEvent);
+    
+    m_Splitter->UpdateSize();
+    
     return TRUE;
 }