From d2c7abab397926735f5a41ca17fd280a409e2940 Mon Sep 17 00:00:00 2001 From: Tse Kit Yam Date: Wed, 23 Nov 2016 10:46:28 +1100 Subject: Implementation of MarginRightClick event. --- qt/ScintillaEditBase/ScintillaEditBase.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'qt/ScintillaEditBase/ScintillaEditBase.cpp') diff --git a/qt/ScintillaEditBase/ScintillaEditBase.cpp b/qt/ScintillaEditBase/ScintillaEditBase.cpp index 9656af283..762cf8820 100644 --- a/qt/ScintillaEditBase/ScintillaEditBase.cpp +++ b/qt/ScintillaEditBase/ScintillaEditBase.cpp @@ -289,9 +289,7 @@ void ScintillaEditBase::mousePressEvent(QMouseEvent *event) return; } - bool button = event->button() == Qt::LeftButton; - - if (button) { + if (event->button() == Qt::LeftButton) { bool shift = QApplication::keyboardModifiers() & Qt::ShiftModifier; bool ctrl = QApplication::keyboardModifiers() & Qt::ControlModifier; #ifdef Q_WS_X11 @@ -304,6 +302,14 @@ void ScintillaEditBase::mousePressEvent(QMouseEvent *event) sqt->ButtonDown(pos, time.elapsed(), 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)); + } } void ScintillaEditBase::mouseReleaseEvent(QMouseEvent *event) @@ -350,9 +356,12 @@ void ScintillaEditBase::contextMenuEvent(QContextMenuEvent *event) { Point pos = PointFromQPoint(event->globalPos()); Point pt = PointFromQPoint(event->pos()); - if (!sqt->PointInSelection(pt)) + if (!sqt->PointInSelection(pt)) { sqt->SetEmptySelection(sqt->PositionFromLocation(pt)); - sqt->ContextMenu(pos); + } + if (sqt->ShouldDisplayPopup(pt)) { + sqt->ContextMenu(pos); + } } void ScintillaEditBase::dragEnterEvent(QDragEnterEvent *event) -- cgit v1.2.3