diff options
Diffstat (limited to 'win32/ScintillaWin.cxx')
-rw-r--r-- | win32/ScintillaWin.cxx | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index faf4701c3..d35e418a9 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -156,7 +156,7 @@ static Point PointFromPOINT(POINT pt) { return Point::FromInts(pt.x, pt.y); } -static Point PointFromLong(long lpoint) { +static Point PointFromLParam(sptr_t lpoint) { return Point(static_cast<short>(LOWORD(lpoint)), static_cast<short>(HIWORD(lpoint))); } @@ -305,6 +305,8 @@ class ScintillaWin : bool DragThreshold(Point ptStart, Point ptNow) override; void StartDrag() override; + static int MouseModifiers(uptr_t wParam); + Sci::Position TargetAsUTF8(char *text); void AddCharUTF16(wchar_t const *wcs, unsigned int wclen); Sci::Position EncodedFromUTF8(char *utf8, char *encoded) const; @@ -632,6 +634,12 @@ void ScintillaWin::StartDrag() { SetDragPosition(SelectionPosition(Sci::invalidPosition)); } +int ScintillaWin::MouseModifiers(uptr_t wParam) { + return ModifierFlags((wParam & MK_SHIFT) != 0, + (wParam & MK_CONTROL) != 0, + KeyboardIsKeyDown(VK_MENU)); +} + // Avoid warnings everywhere for old style casts by concentrating them here static WORD LoWord(uptr_t l) { return LOWORD(l); @@ -1388,24 +1396,19 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam // KeyboardIsKeyDown(VK_CONTROL), // KeyboardIsKeyDown(VK_MENU)); ::SetFocus(MainHWND()); - ButtonDown(PointFromLong(static_cast<long>(lParam)), ::GetMessageTime(), - (wParam & MK_SHIFT) != 0, - (wParam & MK_CONTROL) != 0, - KeyboardIsKeyDown(VK_MENU)); + ButtonDownWithModifiers(PointFromLParam(lParam), ::GetMessageTime(), + MouseModifiers(wParam)); } break; case WM_MOUSEMOVE: { - const Point pt = PointFromLong(static_cast<long>(lParam)); + const Point pt = PointFromLParam(lParam); // Windows might send WM_MOUSEMOVE even though the mouse has not been moved: // http://blogs.msdn.com/b/oldnewthing/archive/2003/10/01/55108.aspx if (ptMouseLast.x != pt.x || ptMouseLast.y != pt.y) { SetTrackMouseLeaveEvent(true); - ButtonMoveWithModifiers(pt, - ((wParam & MK_SHIFT) != 0 ? SCI_SHIFT : 0) | - ((wParam & MK_CONTROL) != 0 ? SCI_CTRL : 0) | - (KeyboardIsKeyDown(VK_MENU) ? SCI_ALT : 0)); + ButtonMoveWithModifiers(pt, ::GetMessageTime(), MouseModifiers(wParam)); } } break; @@ -1416,22 +1419,19 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam); case WM_LBUTTONUP: - ButtonUp(PointFromLong(static_cast<long>(lParam)), - ::GetMessageTime(), - (wParam & MK_CONTROL) != 0); + ButtonUpWithModifiers(PointFromLParam(lParam), + ::GetMessageTime(), MouseModifiers(wParam)); break; case WM_RBUTTONDOWN: { ::SetFocus(MainHWND()); - Point pt = PointFromLong(static_cast<long>(lParam)); + Point pt = PointFromLParam(lParam); if (!PointInSelection(pt)) { CancelModes(); - SetEmptySelection(PositionFromLocation(PointFromLong(static_cast<long>(lParam)))); + SetEmptySelection(PositionFromLocation(PointFromLParam(lParam))); } - RightButtonDownWithModifiers(pt, ::GetMessageTime(), ModifierFlags((wParam & MK_SHIFT) != 0, - (wParam & MK_CONTROL) != 0, - KeyboardIsKeyDown(VK_MENU))); + RightButtonDownWithModifiers(pt, ::GetMessageTime(), MouseModifiers(wParam)); } break; @@ -1494,10 +1494,10 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam case WM_KEYDOWN: { //Platform::DebugPrintf("S keydown %d %x %x %x %x\n",iMessage, wParam, lParam, ::IsKeyDown(VK_SHIFT), ::IsKeyDown(VK_CONTROL)); lastKeyDownConsumed = false; - const int ret = KeyDown(KeyTranslate(static_cast<int>(wParam)), - KeyboardIsKeyDown(VK_SHIFT), + const int ret = KeyDownWithModifiers(KeyTranslate(static_cast<int>(wParam)), + ModifierFlags(KeyboardIsKeyDown(VK_SHIFT), KeyboardIsKeyDown(VK_CONTROL), - KeyboardIsKeyDown(VK_MENU), + KeyboardIsKeyDown(VK_MENU)), &lastKeyDownConsumed); if (!ret && !lastKeyDownConsumed) { return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam); @@ -1581,7 +1581,7 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam } case WM_CONTEXTMENU: { - Point pt = PointFromLong(static_cast<long>(lParam)); + Point pt = PointFromLParam(lParam); POINT rpt = {static_cast<int>(pt.x), static_cast<int>(pt.y)}; ::ScreenToClient(MainHWND(), &rpt); const Point ptClient = PointFromPOINT(rpt); @@ -3358,7 +3358,7 @@ LRESULT PASCAL ScintillaWin::CTWndProc( return 0; } else if (iMessage == WM_LBUTTONDOWN) { // This does not fire due to the hit test code - sciThis->ct.MouseClick(PointFromLong(static_cast<long>(lParam))); + sciThis->ct.MouseClick(PointFromLParam(lParam)); sciThis->CallTipClick(); return 0; } else if (iMessage == WM_SETCURSOR) { |