aboutsummaryrefslogtreecommitdiffhomepage
path: root/qt/ScintillaEditBase/ScintillaEditBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt/ScintillaEditBase/ScintillaEditBase.cpp')
-rw-r--r--qt/ScintillaEditBase/ScintillaEditBase.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/qt/ScintillaEditBase/ScintillaEditBase.cpp b/qt/ScintillaEditBase/ScintillaEditBase.cpp
index e5de593a8..37dc888e4 100644
--- a/qt/ScintillaEditBase/ScintillaEditBase.cpp
+++ b/qt/ScintillaEditBase/ScintillaEditBase.cpp
@@ -319,7 +319,20 @@ void ScintillaEditBase::mouseDoubleClickEvent(QMouseEvent *event)
void ScintillaEditBase::mouseMoveEvent(QMouseEvent *event)
{
Point pos = PointFromQPoint(event->pos());
- sqt->ButtonMove(pos);
+
+ bool shift = QApplication::keyboardModifiers() & Qt::ShiftModifier;
+ bool ctrl = QApplication::keyboardModifiers() & Qt::ControlModifier;
+#ifdef Q_WS_X11
+ // On X allow choice of rectangular modifier since most window
+ // managers grab alt + click for moving windows.
+ bool alt = QApplication::keyboardModifiers() & modifierTranslated(sqt->rectangularSelectionModifier);
+#else
+ bool alt = QApplication::keyboardModifiers() & Qt::AltModifier;
+#endif
+
+ int modifiers = (shift ? SCI_SHIFT : 0) | (ctrl ? SCI_CTRL : 0) | (alt ? SCI_ALT : 0);
+
+ sqt->ButtonMoveWithModifiers(pos, modifiers);
}
void ScintillaEditBase::contextMenuEvent(QContextMenuEvent *event)