aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r--src/Editor.cxx15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 04d61bea6..9e81a2ef3 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -377,9 +377,10 @@ SelectionPosition Editor::ClampPositionIntoDocument(SelectionPosition sp) const
}
Point Editor::LocationFromPosition(SelectionPosition pos, PointEnd pe) {
+ const PRectangle rcClient = GetTextRectangle();
RefreshStyleData();
AutoSurface surface(this);
- return view.LocationFromPosition(surface, *this, pos, topLine, vs, pe);
+ return view.LocationFromPosition(surface, *this, pos, topLine, vs, pe, rcClient);
}
Point Editor::LocationFromPosition(Sci::Position pos, PointEnd pe) {
@@ -395,11 +396,12 @@ SelectionPosition Editor::SPositionFromLocation(Point pt, bool canReturnInvalid,
RefreshStyleData();
AutoSurface surface(this);
+ PRectangle rcClient = GetTextRectangle();
+ // May be in scroll view coordinates so translate back to main view
+ const Point ptOrigin = GetVisibleOriginInMain();
+ rcClient.Move(-ptOrigin.x, -ptOrigin.y);
+
if (canReturnInvalid) {
- PRectangle rcClient = GetTextRectangle();
- // May be in scroll view coordinates so translate back to main view
- const Point ptOrigin = GetVisibleOriginInMain();
- rcClient.Move(-ptOrigin.x, -ptOrigin.y);
if (!rcClient.Contains(pt))
return SelectionPosition(INVALID_POSITION);
if (pt.x < vs.textStart)
@@ -408,7 +410,8 @@ SelectionPosition Editor::SPositionFromLocation(Point pt, bool canReturnInvalid,
return SelectionPosition(INVALID_POSITION);
}
const PointDocument ptdoc = DocumentPointFromView(pt);
- return view.SPositionFromLocation(surface, *this, ptdoc, canReturnInvalid, charPosition, virtualSpace, vs);
+ return view.SPositionFromLocation(surface, *this, ptdoc, canReturnInvalid,
+ charPosition, virtualSpace, vs, rcClient);
}
Sci::Position Editor::PositionFromLocation(Point pt, bool canReturnInvalid, bool charPosition) {