aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--win32/ScintillaWin.cxx30
1 files changed, 15 insertions, 15 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index cc2f6f90e..11f411ba2 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -444,7 +444,7 @@ class ScintillaWin :
void ChangeScrollPos(int barType, Sci::Position pos);
sptr_t GetTextLength();
sptr_t GetText(uptr_t wParam, sptr_t lParam);
- Window::Cursor ContextCursor();
+ Window::Cursor ContextCursor(Point pt);
sptr_t ShowContextMenu(unsigned int iMessage, uptr_t wParam, sptr_t lParam);
void SizeWindow();
sptr_t MouseMessage(unsigned int iMessage, uptr_t wParam, sptr_t lParam);
@@ -1351,23 +1351,19 @@ sptr_t ScintillaWin::GetText(uptr_t wParam, sptr_t lParam) {
}
}
-Window::Cursor ScintillaWin::ContextCursor() {
+Window::Cursor ScintillaWin::ContextCursor(Point pt) {
if (inDragDrop == ddDragging) {
return Window::cursorUp;
} else {
// Display regular (drag) cursor over selection
- POINT pt;
- if (0 != ::GetCursorPos(&pt)) {
- ::ScreenToClient(MainHWND(), &pt);
- if (PointInSelMargin(PointFromPOINT(pt))) {
- return GetMarginCursor(PointFromPOINT(pt));
- } else if (PointInSelection(PointFromPOINT(pt)) && !SelectionEmpty()) {
- return Window::cursorArrow;
- } else if (PointIsHotspot(PointFromPOINT(pt))) {
- return Window::cursorHand;
- } else if (hoverIndicatorPos != Sci::invalidPosition) {
- return Window::cursorHand;
- }
+ if (PointInSelMargin(pt)) {
+ return GetMarginCursor(pt);
+ } else if (!SelectionEmpty() && PointInSelection(pt)) {
+ return Window::cursorArrow;
+ } else if (PointIsHotspot(pt)) {
+ return Window::cursorHand;
+ } else if (hoverIndicatorPos != Sci::invalidPosition) {
+ return Window::cursorHand;
}
}
return Window::cursorText;
@@ -1896,7 +1892,11 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam
case WM_SETCURSOR:
if (LOWORD(lParam) == HTCLIENT) {
- DisplayCursor(ContextCursor());
+ POINT pt;
+ if (::GetCursorPos(&pt)) {
+ ::ScreenToClient(MainHWND(), &pt);
+ DisplayCursor(ContextCursor(PointFromPOINT(pt)));
+ }
return TRUE;
} else {
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);