wxSetCursor() bug with splitters corrected

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-02-27 01:33:05 +00:00
parent ed93168bf9
commit f4621a09f0
3 changed files with 27 additions and 20 deletions

View 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 = new MyCanvas(m_splitter, CANVAS1, 0, 0, 400, 400);
m_leftCanvas->SetBackgroundColour(*wxRED); m_leftCanvas->SetBackgroundColour(*wxRED);
m_leftCanvas->SetScrollbars(20, 20, 50, 50); 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 = new MyCanvas(m_splitter, CANVAS2, 0, 0, 400, 400);
m_rightCanvas->SetBackgroundColour(*wxCYAN); m_rightCanvas->SetBackgroundColour(*wxCYAN);

View File

@@ -6,23 +6,22 @@
// Created: 01/02/97 // Created: 01/02/97
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Julian Smart and Markus Holzem // Copyright: (c) Julian Smart and Markus Holzem
// Licence: wxWindows license // Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
#pragma implementation "splitter.h" #pragma implementation "splitter.h"
// #pragma interface
#endif #endif
// For compilers that support precompilation, includes "wx.h". // For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h" #include "wx/wxprec.h"
#ifdef __BORLANDC__ #ifdef __BORLANDC__
#pragma hdrstop #pragma hdrstop
#endif #endif
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include "wx/wx.h" #include "wx/wx.h"
#endif #endif
#include <math.h> #include <math.h>
@@ -146,6 +145,9 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
long x, y; long x, y;
event.Position(&x, &y); event.Position(&x, &y);
// reset the cursor
SetCursor(wxCursor());
if (event.LeftDown()) if (event.LeftDown())
{ {
if ( SashHitTest(x, y) ) if ( SashHitTest(x, y) )
@@ -153,11 +155,11 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
CaptureMouse(); CaptureMouse();
m_dragMode = wxSPLIT_DRAG_DRAGGING; m_dragMode = wxSPLIT_DRAG_DRAGGING;
DrawSashTracker(x, y); DrawSashTracker(x, y);
m_oldX = x; m_oldX = x;
m_oldY = y; m_oldY = y;
return; return;
} }
} }
else if (event.LeftUp() && m_dragMode == wxSPLIT_DRAG_DRAGGING) else if (event.LeftUp() && m_dragMode == wxSPLIT_DRAG_DRAGGING)
@@ -243,10 +245,6 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
SetCursor(*m_sashCursorNS); SetCursor(*m_sashCursorNS);
} }
} }
else
{
SetCursor(*wxSTANDARD_CURSOR);
}
} }
else if (event.Dragging() && (m_dragMode == wxSPLIT_DRAG_DRAGGING)) else if (event.Dragging() && (m_dragMode == wxSPLIT_DRAG_DRAGGING))
{ {

View File

@@ -1495,16 +1495,24 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
hcursor = gs_wxBusyCursor; hcursor = gs_wxBusyCursor;
} }
else if ( m_windowCursor.Ok() )
{
hcursor = (HCURSOR)m_windowCursor.GetHCURSOR();
}
else else
{ {
extern wxCursor *g_globalCursor; // from msw\data.cpp wxCursor *cursor = NULL;
if ( g_globalCursor && g_globalCursor->Ok() ) if ( m_windowCursor.Ok() )
hcursor = (HCURSOR)g_globalCursor->GetHCURSOR(); {
cursor = &m_windowCursor;
}
else
{
extern wxCursor *g_globalCursor; // from msw\data.cpp
if ( g_globalCursor && g_globalCursor->Ok() )
cursor = g_globalCursor;
}
if ( cursor )
hcursor = (HCURSOR)cursor->GetHCURSOR();
} }
if ( hcursor ) if ( hcursor )
@@ -1512,8 +1520,8 @@ long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
::SetCursor(hcursor); ::SetCursor(hcursor);
// returning TRUE stops the DefWindowProc() from further // returning TRUE stops the DefWindowProc() from further
// processing this message - exactly what we need because // processing this message - exactly what we need because we've
// we've just set the cursor // just set the cursor.
return TRUE; return TRUE;
} }
} }