X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6460ce5afe03b09a8f3832bbade88373f6050fc9..6586750c6a4fa9084eaf5075006ca1fcfe50e818:/src/generic/splitter.cpp diff --git a/src/generic/splitter.cpp b/src/generic/splitter.cpp index dee38940af..1db5638513 100644 --- a/src/generic/splitter.cpp +++ b/src/generic/splitter.cpp @@ -484,19 +484,29 @@ void wxSplitterWindow::SetSashGravity(double gravity) m_sashGravity = gravity; } -bool wxSplitterWindow::SashHitTest(int x, int y, int tolerance) +bool wxSplitterWindow::SashHitTest(int x, int y) { if ( m_windowTwo == NULL || m_sashPosition == 0) return false; // No sash int z = m_splitMode == wxSPLIT_VERTICAL ? x : y; - int hitMin = m_sashPosition - tolerance; - int hitMax = m_sashPosition + GetSashSize() + tolerance; + int hitMax = m_sashPosition + GetSashSize() - 1; - return z >= hitMin && z <= hitMax; + return z >= m_sashPosition && z <= hitMax; +} + +void wxSplitterWindow::SetSashInvisible(bool invisible) +{ + if ( IsSashInvisible() != invisible ) + ToggleWindowStyle(wxSP_NOSASH); } int wxSplitterWindow::GetSashSize() const +{ + return IsSashInvisible() ? 0 : GetDefaultSashSize(); +} + +int wxSplitterWindow::GetDefaultSashSize() const { return wxRendererNative::Get().GetSplitterParams(this).widthSash; } @@ -522,7 +532,7 @@ void wxSplitterWindow::DrawSash(wxDC& dc) return; // nor if we're configured to not show it - if ( HasFlag(wxSP_NOSASH) ) + if ( IsSashInvisible() ) return; wxRendererNative::Get().DrawSplitterSash @@ -1036,7 +1046,7 @@ void wxSplitterWindow::OnSetCursor(wxSetCursorEvent& event) // and like this we explicitly say that our cursor should not be used for // children windows which overlap us - if ( SashHitTest(event.GetX(), event.GetY(), 0) ) + if ( SashHitTest(event.GetX(), event.GetY()) ) { // default processing is ok event.Skip();