From 76e0d41aafaf6363f905c7bd29e00b1a8abf5ec3 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Mon, 5 May 2003 08:36:50 +0000 Subject: [PATCH] Cleaned the mess in wxSplitterWindow::OnMouse() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/splitter.cpp | 40 ++++++++++++---------------------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/src/generic/splitter.cpp b/src/generic/splitter.cpp index c5d099a54c..53c7b8c15c 100644 --- a/src/generic/splitter.cpp +++ b/src/generic/splitter.cpp @@ -168,11 +168,8 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event) int x = (int)event.GetX(), y = (int)event.GetY(); - // reset the cursor -#if defined( __WXMOTIF__ ) || defined( __WXGTK__ ) || defined( __WXMAC__ ) - SetCursor(* wxSTANDARD_CURSOR); -#elif defined(__WXMSW__) - SetCursor(wxCursor()); +#if defined(__WXMSW__) + // SetCursor(wxCursor()); // Is this required? #endif if (GetWindowStyle() & wxSP_NOSASH) @@ -188,9 +185,12 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event) { if ( SashHitTest(x, y) ) { - CaptureMouse(); - + // Start the drag now m_dragMode = wxSPLIT_DRAG_DRAGGING; + + // Capture mouse and set the cursor + CaptureMouse(); + SetResizeCursor(); if ( !isLive ) { @@ -204,7 +204,6 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event) m_oldX = x; m_oldY = y; - SetResizeCursor(); return; } } @@ -212,7 +211,10 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event) { // We can stop dragging now and see what we've got. m_dragMode = wxSPLIT_DRAG_NONE; + + // Release mouse and unset the cursor ReleaseMouse(); + SetCursor(* wxSTANDARD_CURSOR); // exit if unsplit after doubleclick if ( !IsSplit() ) @@ -271,34 +273,16 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event) SizeWindows(); } // left up && dragging - else if (event.Moving() && !event.Dragging()) + else if ((event.Moving() || event.Leaving() || event.Entering()) && (m_dragMode == wxSPLIT_DRAG_NONE)) { - // Just change the cursor if required + // Just change the cursor as required if ( SashHitTest(x, y) ) - { SetResizeCursor(); - } -#if defined(__WXGTK__) || defined(__WXMSW__) || defined(__WXMAC__) else - { - // We must set the normal cursor in MSW, because - // if the child window doesn't have a cursor, the - // parent's (splitter window) will be used, and this - // must be the standard cursor. - - // where else do we unset the cursor? SetCursor(* wxSTANDARD_CURSOR); - } -#endif // __WXGTK__ } else if (event.Dragging() && (m_dragMode == wxSPLIT_DRAG_DRAGGING)) { -#if defined( __WXMSW__ ) || defined( __WXMAC__ ) - // Otherwise, the cursor sometimes reverts to the normal cursor - // during dragging. - SetResizeCursor(); -#endif // __WXMSW__ - int diff = m_splitMode == wxSPLIT_VERTICAL ? x - m_oldX : y - m_oldY; if ( !diff ) {