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:
@@ -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);
|
||||||
|
@@ -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))
|
||||||
{
|
{
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user