]> git.saurik.com Git - wxWidgets.git/commitdiff
wxSetCursor() bug with splitters corrected
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 27 Feb 1999 01:33:05 +0000 (01:33 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 27 Feb 1999 01:33:05 +0000 (01:33 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/splitter/test.cpp
src/generic/splitter.cpp
src/msw/window.cpp

index dcd6718c68e9e0d401091fc950ca26ef8693c6b4..928ab3214213fb967312c41151237086a48c5ec0 100644 (file)
@@ -169,6 +169,7 @@ MyFrame::MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, cons
   m_leftCanvas = new MyCanvas(m_splitter, CANVAS1, 0, 0, 400, 400);
   m_leftCanvas->SetBackgroundColour(*wxRED);
   m_leftCanvas->SetScrollbars(20, 20, 50, 50);
+  m_leftCanvas->SetCursor(wxCursor(wxCURSOR_MAGNIFIER));
 
   m_rightCanvas = new MyCanvas(m_splitter, CANVAS2, 0, 0, 400, 400);
   m_rightCanvas->SetBackgroundColour(*wxCYAN);
index d43a1244d3762b2b09fb014b97e6443a5501af08..44243d300b4a9e46f17ab5aa4ac4c6586bed9fc7 100644 (file)
@@ -6,23 +6,22 @@
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:       wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-#pragma implementation "splitter.h"
-// #pragma interface
+    #pragma implementation "splitter.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/wx.h"
+    #include "wx/wx.h"
 #endif
 
 #include <math.h>
@@ -146,6 +145,9 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
     long x, y;
     event.Position(&x, &y);
 
+    // reset the cursor
+    SetCursor(wxCursor());
+
     if (event.LeftDown())
     {
         if ( SashHitTest(x, y) )
@@ -153,11 +155,11 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
             CaptureMouse();
 
             m_dragMode = wxSPLIT_DRAG_DRAGGING;
-           
+
             DrawSashTracker(x, y);
             m_oldX = x;
             m_oldY = y;
-           return;
+            return;
         }
     }
     else if (event.LeftUp() && m_dragMode == wxSPLIT_DRAG_DRAGGING)
@@ -243,10 +245,6 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
                     SetCursor(*m_sashCursorNS);
                 }
         }
-        else
-        {
-            SetCursor(*wxSTANDARD_CURSOR);
-        }
     }
     else if (event.Dragging() && (m_dragMode == wxSPLIT_DRAG_DRAGGING)) 
     {
index 3709ab01494d3417284170922401c19403e0f165..c85c6abeb4a763c70f8816a786b38338d3e77ef5 100644 (file)
@@ -1495,16 +1495,24 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
 
                     hcursor = gs_wxBusyCursor;
                 }
-                else if ( m_windowCursor.Ok() )
-                {
-                    hcursor = (HCURSOR)m_windowCursor.GetHCURSOR();
-                }
                 else
                 {
-                    extern wxCursor *g_globalCursor; // from msw\data.cpp
+                    wxCursor *cursor = NULL;
+
+                    if ( m_windowCursor.Ok() )
+                    {
+                        cursor = &m_windowCursor;
+                    }
+                    else
+                    {
+                        extern wxCursor *g_globalCursor; // from msw\data.cpp
+
+                        if ( g_globalCursor && g_globalCursor->Ok() )
+                            cursor = g_globalCursor;
+                    }
 
-                    if ( g_globalCursor && g_globalCursor->Ok() )
-                        hcursor = (HCURSOR)g_globalCursor->GetHCURSOR();
+                    if ( cursor )
+                        hcursor = (HCURSOR)cursor->GetHCURSOR();
                 }
 
                 if ( hcursor )
@@ -1512,8 +1520,8 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
                     ::SetCursor(hcursor);
 
                     // returning TRUE stops the DefWindowProc() from further
-                    // processing this message - exactly what we need because
-                    // we've just set the cursor
+                    // processing this message - exactly what we need because we've
+                    // just set the cursor.
                     return TRUE;
                 }
             }