X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9ec0e7da983d3c4de9c7007142a72864214514ac..37f6a080f43058b4575bece0eb11ad99fa63287d:/src/generic/splitter.cpp diff --git a/src/generic/splitter.cpp b/src/generic/splitter.cpp index df06c7d5e0..0a2f061b72 100644 --- a/src/generic/splitter.cpp +++ b/src/generic/splitter.cpp @@ -94,6 +94,11 @@ bool wxSplitterWindow::Create(wxWindow *parent, wxWindowID id, if ( !wxWindow::Create(parent, id, pos, size, style, name) ) return false; + if (size.x >= 0) + m_lastSize.x = size.x; + if (size.y >= 0) + m_lastSize.y = size.y; + m_permitUnsplitAlways = (style & wxSP_PERMIT_UNSPLIT) != 0; // FIXME: with this line the background is not erased at all under GTK1, @@ -573,8 +578,6 @@ int wxSplitterWindow::GetWindowSize() const int wxSplitterWindow::AdjustSashPosition(int sashPos) const { - int window_size = GetWindowSize(); - wxWindow *win; win = GetWindow1(); @@ -603,8 +606,8 @@ int wxSplitterWindow::AdjustSashPosition(int sashPos) const if ( minSize == -1 || m_minimumPaneSize > minSize ) minSize = m_minimumPaneSize; - int maxSize = window_size - minSize - GetBorderSize() - GetSashSize(); - if ( sashPos > maxSize ) + int maxSize = GetWindowSize() - minSize - GetBorderSize() - GetSashSize(); + if ( maxSize > 0 && sashPos > maxSize ) sashPos = maxSize; } @@ -700,8 +703,8 @@ void wxSplitterWindow::SizeWindows() y2 = size2; } - GetWindow1()->SetSize(border, border, w1, h1); GetWindow2()->SetSize(x2, y2, w2, h2); + GetWindow1()->SetSize(border, border, w1, h1); } wxClientDC dc(this); @@ -716,7 +719,7 @@ void wxSplitterWindow::Initialize(wxWindow *window) wxASSERT_MSG( (!window || (window && window->GetParent() == this)), _T("windows in the splitter should have it as parent!") ); - if (! window->IsShown()) + if (window && !window->IsShown()) window->Show(); m_windowOne = window;