diff options
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index 740162faa..4f00e501a 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -9,6 +9,7 @@ #include <string.h> #include <stdio.h> #include <ctype.h> +#include <math.h> #include <assert.h> #include <string> @@ -480,10 +481,7 @@ SelectionPosition Editor::SPositionFromLocation(Point pt, bool canReturnInvalid, return SelectionPosition(INVALID_POSITION); } pt.x = pt.x - vs.fixedColumnWidth + xOffset; - int visibleLine = pt.y / vs.lineHeight + topLine; - if (pt.y < 0) { // Division rounds towards 0 - visibleLine = (static_cast<int>(pt.y) - (vs.lineHeight - 1)) / vs.lineHeight + topLine; - } + int visibleLine = floor(pt.y / vs.lineHeight) + topLine; if (!canReturnInvalid && (visibleLine < 0)) visibleLine = 0; int lineDoc = cs.DocFromDisplay(visibleLine); |