aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/views/mtexteditview.cpp13
-rw-r--r--src/views/mtexteditview.h8
-rw-r--r--src/views/mtexteditview_p.h2
3 files changed, 19 insertions, 4 deletions
diff --git a/src/views/mtexteditview.cpp b/src/views/mtexteditview.cpp
index 4cbc8556..75928410 100644
--- a/src/views/mtexteditview.cpp
+++ b/src/views/mtexteditview.cpp
@@ -148,11 +148,12 @@ int MTextEditViewPrivate::cursorPosition(QGraphicsSceneMouseEvent *event)
* \param hitPoint mouse position
* \return cursor position as characters from start of document
*/
-int MTextEditViewPrivate::cursorPosition(QPointF hitPoint)
+int MTextEditViewPrivate::cursorPosition(const QPointF &point, Qt::HitTestAccuracy accuracy)
{
Q_Q(MTextEditView);
// adjust widget position to textdocument position
+ QPointF hitPoint = point;
hitPoint.rx() += hscroll;
hitPoint.ry() += vscroll;
hitPoint.rx() -= q->style()->paddingLeft();
@@ -180,7 +181,7 @@ int MTextEditViewPrivate::cursorPosition(QPointF hitPoint)
hitPoint.setY(maxY);
}
- return activeDocument()->documentLayout()->hitTest(hitPoint, Qt::FuzzyHit);
+ return activeDocument()->documentLayout()->hitTest(hitPoint, accuracy);
}
@@ -468,7 +469,13 @@ const QPointF &MTextEditView::mouseTarget() const
int MTextEditView::cursorPosition(const QPointF &hitPoint)
{
Q_D(MTextEditView);
- return d->cursorPosition(hitPoint);
+ return d->cursorPosition(hitPoint, Qt::FuzzyHit);
+}
+
+int MTextEditView::cursorPosition(const QPointF &hitPoint, Qt::HitTestAccuracy accuracy)
+{
+ Q_D(MTextEditView);
+ return d->cursorPosition(hitPoint, accuracy);
}
void MTextEditViewPrivate::hideUnmaskedText()
diff --git a/src/views/mtexteditview.h b/src/views/mtexteditview.h
index 0feec8c7..f5f0cbaf 100644
--- a/src/views/mtexteditview.h
+++ b/src/views/mtexteditview.h
@@ -87,6 +87,14 @@ protected:
*/
int cursorPosition(const QPointF &hitPoint);
+ /*!
+ * \brief Returns cursor position from a mouse position
+ * \param hitPoint mouse position
+ * \param accuracy specified accuracy
+ * \return cursor position as characters from start of document
+ */
+ int cursorPosition(const QPointF &hitPoint, Qt::HitTestAccuracy accuracy);
+
protected Q_SLOTS:
/*!
* \brief Set view focused
diff --git a/src/views/mtexteditview_p.h b/src/views/mtexteditview_p.h
index 193626a9..67ea6a7b 100644
--- a/src/views/mtexteditview_p.h
+++ b/src/views/mtexteditview_p.h
@@ -47,7 +47,7 @@ public:
virtual ~MTextEditViewPrivate();
int cursorPosition(QGraphicsSceneMouseEvent *event);
- int cursorPosition(QPointF event);
+ int cursorPosition(const QPointF &point, Qt::HitTestAccuracy accuracy = Qt::FuzzyHit);
QTextDocument *document() const;
QTextDocument *promptDocument() const;