aboutsummaryrefslogtreecommitdiff
path: root/src/platform/graphics/cairo/PangoTextLayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/graphics/cairo/PangoTextLayout.cpp')
-rw-r--r--src/platform/graphics/cairo/PangoTextLayout.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/platform/graphics/cairo/PangoTextLayout.cpp b/src/platform/graphics/cairo/PangoTextLayout.cpp
index 9d301031..25d9f85d 100644
--- a/src/platform/graphics/cairo/PangoTextLayout.cpp
+++ b/src/platform/graphics/cairo/PangoTextLayout.cpp
@@ -160,7 +160,19 @@ TextHitTestResult PangoTextLayout::HitTest(const Point& point) {
auto inside_text =
pango_layout_xy_to_index(pango_layout_, point.x * PANGO_SCALE,
point.y * PANGO_SCALE, &index, &trailing);
- return TextHitTestResult{index, trailing != 0, inside_text != 0};
+
+ TextHitTestResult result{index, trailing != 0, inside_text != 0};
+
+ if (result.trailing) {
+ Index position_with_trailing;
+ string::Utf8NextCodePoint(text_.data(), text_.size(), result.position,
+ &position_with_trailing);
+ result.position_with_trailing = position_with_trailing;
+ } else {
+ result.position_with_trailing = result.position;
+ }
+
+ return result;
}
} // namespace cru::platform::graphics::cairo