aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/PositionCache.cxx4
-rw-r--r--src/PositionCache.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx
index 44f9caa0c..599a697db 100644
--- a/src/PositionCache.cxx
+++ b/src/PositionCache.cxx
@@ -346,6 +346,10 @@ XYPOSITION ScreenLine::RepresentationWidth(size_t position) const {
return ll->bidiData->widthReprs[start + position];
}
+XYPOSITION ScreenLine::TabPositionAfter(XYPOSITION xPosition) const {
+ return (floor((xPosition + TabWidthMinimumPixels()) / TabWidth()) + 1) * TabWidth();
+}
+
LineLayoutCache::LineLayoutCache() :
level(0),
allInvalidated(false), styleClock(-1), useCount(0) {
diff --git a/src/PositionCache.h b/src/PositionCache.h
index 5657b667c..1723e0b2f 100644
--- a/src/PositionCache.h
+++ b/src/PositionCache.h
@@ -142,6 +142,7 @@ struct ScreenLine : public IScreenLine {
XYPOSITION TabWidthMinimumPixels() const override;
const Font *FontOfPosition(size_t position) const override;
XYPOSITION RepresentationWidth(size_t position) const override;
+ XYPOSITION TabPositionAfter(XYPOSITION xPosition) const override;
};
/**