diff options
Diffstat (limited to 'src/scintilla_backports/6314_af83baede430.patch')
-rw-r--r-- | src/scintilla_backports/6314_af83baede430.patch | 535 |
1 files changed, 535 insertions, 0 deletions
diff --git a/src/scintilla_backports/6314_af83baede430.patch b/src/scintilla_backports/6314_af83baede430.patch new file mode 100644 index 00000000..ef028826 --- /dev/null +++ b/src/scintilla_backports/6314_af83baede430.patch @@ -0,0 +1,535 @@ +# HG changeset patch +# User Neil <nyamatongwe@gmail.com> +# Date 1497239386 -36000 +# Node ID af83baede4309993b2ef0aa4f30968148855bc11 +# Parent 2d4cb83e92975d4b8d578f29807031fcf532605a +Simplify mouse and keyboard handling by only retaining the 'WithModifiers" form. +All events include a set of keyboard modifier flags. +Older calls that passed individual parameters for each key were removed. + +diff -r 2d4cb83e9297 -r af83baede430 cocoa/ScintillaCocoa.mm +--- a/cocoa/ScintillaCocoa.mm Mon Jun 12 12:49:30 2017 +1000 ++++ b/cocoa/ScintillaCocoa.mm Mon Jun 12 13:49:46 2017 +1000 +@@ -2262,7 +2262,9 @@ + + // Mouse location is given in screen coordinates and might also be outside of our bounds. + Point location = ConvertPoint(event.locationInWindow); +- ButtonMove(location); ++ ButtonMoveWithModifiers(location, ++ (int)(event.timestamp * 1000), ++ TranslateModifierFlags(event.modifierFlags)); + } + } + +@@ -2276,22 +2278,16 @@ + + void ScintillaCocoa::MouseDown(NSEvent *event) { + Point location = ConvertPoint(event.locationInWindow); +- NSTimeInterval time = event.timestamp; +- bool command = (event.modifierFlags & NSCommandKeyMask) != 0; +- bool shift = (event.modifierFlags & NSShiftKeyMask) != 0; +- bool alt = (event.modifierFlags & NSAlternateKeyMask) != 0; +- +- ButtonDown(Point(location.x, location.y), (int)(time * 1000), shift, command, alt); ++ ButtonDownWithModifiers(location, ++ (int)(event.timestamp * 1000), ++ TranslateModifierFlags(event.modifierFlags)); + } + + void ScintillaCocoa::RightMouseDown(NSEvent *event) { + Point location = ConvertPoint(event.locationInWindow); +- NSTimeInterval time = event.timestamp; +- bool command = (event.modifierFlags & NSCommandKeyMask) != 0; +- bool shift = (event.modifierFlags & NSShiftKeyMask) != 0; +- bool alt = (event.modifierFlags & NSAlternateKeyMask) != 0; +- +- RightButtonDownWithModifiers(Point(location.x, location.y), (int)(time * 1000), ModifierFlags(shift, command, alt)); ++ RightButtonDownWithModifiers(location, ++ (int)(event.timestamp * 1000), ++ TranslateModifierFlags(event.modifierFlags)); + } + + //-------------------------------------------------------------------------------------------------- +@@ -2299,16 +2295,17 @@ + void ScintillaCocoa::MouseMove(NSEvent *event) { + lastMouseEvent = event; + +- ButtonMoveWithModifiers(ConvertPoint(event.locationInWindow), TranslateModifierFlags(event.modifierFlags)); ++ ButtonMoveWithModifiers(ConvertPoint(event.locationInWindow), ++ (int)(event.timestamp * 1000), ++ TranslateModifierFlags(event.modifierFlags)); + } + + //-------------------------------------------------------------------------------------------------- + + void ScintillaCocoa::MouseUp(NSEvent *event) { +- NSTimeInterval time = event.timestamp; +- bool control = (event.modifierFlags & NSControlKeyMask) != 0; +- +- ButtonUp(ConvertPoint(event.locationInWindow), (int)(time * 1000), control); ++ ButtonUpWithModifiers(ConvertPoint(event.locationInWindow), ++ (int)(event.timestamp * 1000), ++ TranslateModifierFlags(event.modifierFlags)); + } + + //-------------------------------------------------------------------------------------------------- +@@ -2344,7 +2341,7 @@ + } + + void ScintillaCocoa::DeleteBackward() { +- KeyDown(SCK_BACK, false, false, false, nil); ++ KeyDownWithModifiers(SCK_BACK, 0, nil); + } + + void ScintillaCocoa::Cut() { +diff -r 2d4cb83e9297 -r af83baede430 gtk/ScintillaGTK.cxx +--- a/gtk/ScintillaGTK.cxx Mon Jun 12 12:49:30 2017 +1000 ++++ b/gtk/ScintillaGTK.cxx Mon Jun 12 13:49:46 2017 +1000 +@@ -1775,7 +1775,11 @@ + // If mouse released on scroll bar then the position is relative to the + // scrollbar, not the drawing window so just repeat the most recent point. + pt = sciThis->ptMouseLast; +- sciThis->ButtonUp(pt, event->time, (event->state & GDK_CONTROL_MASK) != 0); ++ const int modifiers = ModifierFlags( ++ (event->state & GDK_SHIFT_MASK) != 0, ++ (event->state & GDK_CONTROL_MASK) != 0, ++ (event->state & modifierTranslated(sciThis->rectangularSelectionModifier)) != 0); ++ sciThis->ButtonUpWithModifiers(pt, event->time, modifiers); + } + } catch (...) { + sciThis->errorStatus = SC_STATUS_FAILURE; +@@ -1912,10 +1916,11 @@ + //Platform::DebugPrintf("Move %x %x %d %c %d %d\n", + // sciThis,event->window,event->time,event->is_hint? 'h' :'.', x, y); + Point pt(x, y); +- int modifiers = ((event->state & GDK_SHIFT_MASK) != 0 ? SCI_SHIFT : 0) | +- ((event->state & GDK_CONTROL_MASK) != 0 ? SCI_CTRL : 0) | +- ((event->state & modifierTranslated(sciThis->rectangularSelectionModifier)) != 0 ? SCI_ALT : 0); +- sciThis->ButtonMoveWithModifiers(pt, modifiers); ++ const int modifiers = ModifierFlags( ++ (event->state & GDK_SHIFT_MASK) != 0, ++ (event->state & GDK_CONTROL_MASK) != 0, ++ (event->state & modifierTranslated(sciThis->rectangularSelectionModifier)) != 0); ++ sciThis->ButtonMoveWithModifiers(pt, event->time, modifiers); + } catch (...) { + sciThis->errorStatus = SC_STATUS_FAILURE; + } +diff -r 2d4cb83e9297 -r af83baede430 qt/ScintillaEditBase/ScintillaEditBase.cpp +--- a/qt/ScintillaEditBase/ScintillaEditBase.cpp Mon Jun 12 12:49:30 2017 +1000 ++++ b/qt/ScintillaEditBase/ScintillaEditBase.cpp Mon Jun 12 13:49:46 2017 +1000 +@@ -241,7 +241,9 @@ + bool alt = QApplication::keyboardModifiers() & Qt::AltModifier; + + bool consumed = false; +- bool added = sqt->KeyDown(key, shift, ctrl, alt, &consumed) != 0; ++ bool added = sqt->KeyDownWithModifiers(key, ++ ScintillaQt::ModifierFlags(shift, ctrl, alt), ++ &consumed) != 0; + if (!consumed) + consumed = added; + +@@ -314,24 +316,19 @@ + bool alt = QApplication::keyboardModifiers() & Qt::AltModifier; + #endif + +- sqt->ButtonDown(pos, time.elapsed(), shift, ctrl, alt); ++ sqt->ButtonDownWithModifiers(pos, time.elapsed(), ScintillaQt::ModifierFlags(shift, ctrl, alt)); + } + + if (event->button() == Qt::RightButton) { +- bool shift = QApplication::keyboardModifiers() & Qt::ShiftModifier; +- bool ctrl = QApplication::keyboardModifiers() & Qt::ControlModifier; +- bool alt = QApplication::keyboardModifiers() & Qt::AltModifier; +- +- sqt->RightButtonDownWithModifiers(pos, time.elapsed(), ScintillaQt::ModifierFlags(shift, ctrl, alt)); ++ sqt->RightButtonDownWithModifiers(pos, time.elapsed(), ModifiersOfKeyboard()); + } + } + + void ScintillaEditBase::mouseReleaseEvent(QMouseEvent *event) + { + Point point = PointFromQPoint(event->pos()); +- bool ctrl = QApplication::keyboardModifiers() & Qt::ControlModifier; + if (event->button() == Qt::LeftButton) +- sqt->ButtonUp(point, time.elapsed(), ctrl); ++ sqt->ButtonUpWithModifiers(point, time.elapsed(), ModifiersOfKeyboard()); + + int pos = send(SCI_POSITIONFROMPOINT, point.x, point.y); + int line = send(SCI_LINEFROMPOSITION, pos); +@@ -361,9 +358,9 @@ + bool alt = QApplication::keyboardModifiers() & Qt::AltModifier; + #endif + +- int modifiers = (shift ? SCI_SHIFT : 0) | (ctrl ? SCI_CTRL : 0) | (alt ? SCI_ALT : 0); ++ const int modifiers = ScintillaQt::ModifierFlags(shift, ctrl, alt); + +- sqt->ButtonMoveWithModifiers(pos, modifiers); ++ sqt->ButtonMoveWithModifiers(pos, time.elapsed(), modifiers); + } + + void ScintillaEditBase::contextMenuEvent(QContextMenuEvent *event) +@@ -794,3 +791,12 @@ + { + emit command(wParam, lParam); + } ++ ++int ScintillaEditBase::ModifiersOfKeyboard() const ++{ ++ const bool shift = QApplication::keyboardModifiers() & Qt::ShiftModifier; ++ const bool ctrl = QApplication::keyboardModifiers() & Qt::ControlModifier; ++ const bool alt = QApplication::keyboardModifiers() & Qt::AltModifier; ++ ++ return ScintillaQt::ModifierFlags(shift, ctrl, alt); ++} +diff -r 2d4cb83e9297 -r af83baede430 qt/ScintillaEditBase/ScintillaEditBase.h +--- a/qt/ScintillaEditBase/ScintillaEditBase.h Mon Jun 12 12:49:30 2017 +1000 ++++ b/qt/ScintillaEditBase/ScintillaEditBase.h Mon Jun 12 13:49:46 2017 +1000 +@@ -147,6 +147,7 @@ + static bool IsHangul(const QChar qchar); + void MoveImeCarets(int offset); + void DrawImeIndicator(int indicator, int len); ++ int ModifiersOfKeyboard() const; + }; + + #ifdef SCI_NAMESPACE +diff -r 2d4cb83e9297 -r af83baede430 src/Editor.cxx +--- a/src/Editor.cxx Mon Jun 12 12:49:30 2017 +1000 ++++ b/src/Editor.cxx Mon Jun 12 13:49:46 2017 +1000 +@@ -2340,10 +2340,6 @@ + NotifyParent(scn); + } + +-void Editor::NotifyDoubleClick(Point pt, bool shift, bool ctrl, bool alt) { +- NotifyDoubleClick(pt, ModifierFlags(shift, ctrl, alt)); +-} +- + void Editor::NotifyHotSpotDoubleClicked(Sci::Position position, int modifiers) { + SCNotification scn = {}; + scn.nmhdr.code = SCN_HOTSPOTDOUBLECLICK; +@@ -2352,10 +2348,6 @@ + NotifyParent(scn); + } + +-void Editor::NotifyHotSpotDoubleClicked(Sci::Position position, bool shift, bool ctrl, bool alt) { +- NotifyHotSpotDoubleClicked(position, ModifierFlags(shift, ctrl, alt)); +-} +- + void Editor::NotifyHotSpotClicked(Sci::Position position, int modifiers) { + SCNotification scn = {}; + scn.nmhdr.code = SCN_HOTSPOTCLICK; +@@ -2364,10 +2356,6 @@ + NotifyParent(scn); + } + +-void Editor::NotifyHotSpotClicked(Sci::Position position, bool shift, bool ctrl, bool alt) { +- NotifyHotSpotClicked(position, ModifierFlags(shift, ctrl, alt)); +-} +- + void Editor::NotifyHotSpotReleaseClick(Sci::Position position, int modifiers) { + SCNotification scn = {}; + scn.nmhdr.code = SCN_HOTSPOTRELEASECLICK; +@@ -2376,10 +2364,6 @@ + NotifyParent(scn); + } + +-void Editor::NotifyHotSpotReleaseClick(Sci::Position position, bool shift, bool ctrl, bool alt) { +- NotifyHotSpotReleaseClick(position, ModifierFlags(shift, ctrl, alt)); +-} +- + bool Editor::NotifyUpdateUI() { + if (needUpdateUI) { + SCNotification scn = {}; +@@ -2410,10 +2394,6 @@ + } + } + +-void Editor::NotifyIndicatorClick(bool click, Sci::Position position, bool shift, bool ctrl, bool alt) { +- NotifyIndicatorClick(click, position, ModifierFlags(shift, ctrl, alt)); +-} +- + bool Editor::NotifyMarginClick(Point pt, int modifiers) { + const int marginClicked = vs.MarginFromLocation(pt); + if ((marginClicked >= 0) && vs.ms[marginClicked].sensitive) { +@@ -2452,10 +2432,6 @@ + } + } + +-bool Editor::NotifyMarginClick(Point pt, bool shift, bool ctrl, bool alt) { +- return NotifyMarginClick(pt, ModifierFlags(shift, ctrl, alt)); +-} +- + bool Editor::NotifyMarginRightClick(Point pt, int modifiers) { + int marginRightClicked = vs.MarginFromLocation(pt); + if ((marginRightClicked >= 0) && vs.ms[marginRightClicked].sensitive) { +@@ -3882,10 +3858,6 @@ + } + } + +-int Editor::KeyDown(int key, bool shift, bool ctrl, bool alt, bool *consumed) { +- return KeyDownWithModifiers(key, ModifierFlags(shift, ctrl, alt), consumed); +-} +- + void Editor::Indent(bool forwards) { + UndoGroup ug(pdoc); + for (size_t r=0; r<sel.Count(); r++) { +@@ -4630,10 +4602,6 @@ + return; + } + +-void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt) { +- return ButtonDownWithModifiers(pt, curTime, ModifierFlags(shift, ctrl, alt)); +-} +- + bool Editor::PositionIsHotspot(Sci::Position position) const { + return vs.styles[pdoc->StyleIndexAt(position)].hotspot; + } +@@ -4703,7 +4671,7 @@ + return hotspot; + } + +-void Editor::ButtonMoveWithModifiers(Point pt, int modifiers) { ++void Editor::ButtonMoveWithModifiers(Point pt, unsigned int, int modifiers) { + if ((ptMouseLast.x != pt.x) || (ptMouseLast.y != pt.y)) { + DwellEnd(true); + } +@@ -4830,11 +4798,7 @@ + } + } + +-void Editor::ButtonMove(Point pt) { +- ButtonMoveWithModifiers(pt, 0); +-} +- +-void Editor::ButtonUp(Point pt, unsigned int curTime, bool ctrl) { ++void Editor::ButtonUpWithModifiers(Point pt, unsigned int curTime, int modifiers) { + //Platform::DebugPrintf("ButtonUp %d %d\n", HaveMouseCapture(), inDragDrop); + SelectionPosition newPos = SPositionFromLocation(pt, false, false, + AllowVirtualSpace(virtualSpaceOptions, sel.IsRectangular())); +@@ -4851,7 +4815,7 @@ + hotSpotClickPos = INVALID_POSITION; + SelectionPosition newCharPos = SPositionFromLocation(pt, false, true, false); + newCharPos = MovePositionOutsideChar(newCharPos, -1); +- NotifyHotSpotReleaseClick(newCharPos.Position(), ctrl ? SCI_CTRL : 0); ++ NotifyHotSpotReleaseClick(newCharPos.Position(), modifiers & SCI_CTRL); + } + if (HaveMouseCapture()) { + if (PointInSelMargin(pt)) { +@@ -4872,7 +4836,7 @@ + if (selStart < selEnd) { + if (drag.Length()) { + const int length = static_cast<int>(drag.Length()); +- if (ctrl) { ++ if (modifiers & SCI_CTRL) { + const Sci::Position lengthInserted = pdoc->InsertString( + newPos.Position(), drag.Data(), length); + if (lengthInserted > 0) { +@@ -4929,7 +4893,7 @@ + void Editor::Tick() { + if (HaveMouseCapture()) { + // Auto scroll +- ButtonMove(ptMouseLast); ++ ButtonMoveWithModifiers(ptMouseLast, 0, 0); + } + if (caret.period > 0) { + timer.ticksToWait -= timer.tickSize; +@@ -4996,7 +4960,7 @@ + break; + case tickScroll: + // Auto scroll +- ButtonMove(ptMouseLast); ++ ButtonMoveWithModifiers(ptMouseLast, 0, 0); + break; + case tickWiden: + SetScrollBars(); +diff -r 2d4cb83e9297 -r af83baede430 src/Editor.h +--- a/src/Editor.h Mon Jun 12 12:49:30 2017 +1000 ++++ b/src/Editor.h Mon Jun 12 13:49:46 2017 +1000 +@@ -425,19 +425,13 @@ + void NotifySavePoint(bool isSavePoint); + void NotifyModifyAttempt(); + virtual void NotifyDoubleClick(Point pt, int modifiers); +- virtual void NotifyDoubleClick(Point pt, bool shift, bool ctrl, bool alt); + void NotifyHotSpotClicked(Sci::Position position, int modifiers); +- void NotifyHotSpotClicked(Sci::Position position, bool shift, bool ctrl, bool alt); + void NotifyHotSpotDoubleClicked(Sci::Position position, int modifiers); +- void NotifyHotSpotDoubleClicked(Sci::Position position, bool shift, bool ctrl, bool alt); + void NotifyHotSpotReleaseClick(Sci::Position position, int modifiers); +- void NotifyHotSpotReleaseClick(Sci::Position position, bool shift, bool ctrl, bool alt); + bool NotifyUpdateUI(); + void NotifyPainted(); + void NotifyIndicatorClick(bool click, Sci::Position position, int modifiers); +- void NotifyIndicatorClick(bool click, Sci::Position position, bool shift, bool ctrl, bool alt); + bool NotifyMarginClick(Point pt, int modifiers); +- bool NotifyMarginClick(Point pt, bool shift, bool ctrl, bool alt); + bool NotifyMarginRightClick(Point pt, int modifiers); + void NotifyNeedShown(Sci::Position pos, Sci::Position len); + void NotifyDwelling(Point pt, bool state); +@@ -476,7 +470,6 @@ + virtual int KeyCommand(unsigned int iMessage); + virtual int KeyDefault(int /* key */, int /*modifiers*/); + int KeyDownWithModifiers(int key, int modifiers, bool *consumed); +- int KeyDown(int key, bool shift, bool ctrl, bool alt, bool *consumed=0); + + void Indent(bool forwards); + +@@ -510,10 +503,8 @@ + void MouseLeave(); + virtual void ButtonDownWithModifiers(Point pt, unsigned int curTime, int modifiers); + virtual void RightButtonDownWithModifiers(Point pt, unsigned int curTime, int modifiers); +- virtual void ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt); +- void ButtonMoveWithModifiers(Point pt, int modifiers); +- void ButtonMove(Point pt); +- void ButtonUp(Point pt, unsigned int curTime, bool ctrl); ++ void ButtonMoveWithModifiers(Point pt, unsigned int curTime, int modifiers); ++ void ButtonUpWithModifiers(Point pt, unsigned int curTime, int modifiers); + + void Tick(); + bool Idle(); +diff -r 2d4cb83e9297 -r af83baede430 src/ScintillaBase.cxx +--- a/src/ScintillaBase.cxx Mon Jun 12 12:49:30 2017 +1000 ++++ b/src/ScintillaBase.cxx Mon Jun 12 13:49:46 2017 +1000 +@@ -537,10 +537,6 @@ + Editor::ButtonDownWithModifiers(pt, curTime, modifiers); + } + +-void ScintillaBase::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt) { +- ButtonDownWithModifiers(pt, curTime, ModifierFlags(shift, ctrl, alt)); +-} +- + void ScintillaBase::RightButtonDownWithModifiers(Point pt, unsigned int curTime, int modifiers) { + CancelModes(); + Editor::RightButtonDownWithModifiers(pt, curTime, modifiers); +diff -r 2d4cb83e9297 -r af83baede430 src/ScintillaBase.h +--- a/src/ScintillaBase.h Mon Jun 12 12:49:30 2017 +1000 ++++ b/src/ScintillaBase.h Mon Jun 12 13:49:46 2017 +1000 +@@ -88,7 +88,6 @@ + void ContextMenu(Point pt); + + void ButtonDownWithModifiers(Point pt, unsigned int curTime, int modifiers); +- void ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt); + void RightButtonDownWithModifiers(Point pt, unsigned int curTime, int modifiers); + + void NotifyStyleToNeeded(Sci::Position endStyleNeeded); +diff -r 2d4cb83e9297 -r af83baede430 win32/ScintillaWin.cxx +--- a/win32/ScintillaWin.cxx Mon Jun 12 12:49:30 2017 +1000 ++++ b/win32/ScintillaWin.cxx Mon Jun 12 13:49:46 2017 +1000 +@@ -156,7 +156,7 @@ + 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 @@ + + 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 @@ + 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 @@ + // 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 @@ + 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 @@ + 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 @@ + } + + 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 @@ + 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) { |