aboutsummaryrefslogtreecommitdiffhomepage
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rw-r--r--win32/ScintillaWin.cxx46
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) {