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:
parent
ed93168bf9
commit
f4621a09f0
@ -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);
|
||||
|
@ -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))
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user