diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/PositionCache.cxx | 4 | ||||
-rw-r--r-- | src/PositionCache.h | 1 |
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; }; /** |