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->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);

View 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))
{

View 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 ( g_globalCursor && g_globalCursor->Ok() )
hcursor = (HCURSOR)g_globalCursor->GetHCURSOR();
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 ( 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;
}
}