From d409e3f17df3caa3d513c5adfa575991204bd82e Mon Sep 17 00:00:00 2001 From: kornes <28986062+kornes@users.noreply.github.com> Date: Sun, 13 Nov 2022 11:26:33 +0000 Subject: [PATCH] Improved text selection (#4127) Co-authored-by: pajlada --- CHANGELOG.md | 1 + src/messages/layouts/MessageLayoutElement.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18db4b434..84ab22cbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -79,6 +79,7 @@ - Minor: Make menus and placeholders display appropriate custom key combos. (#4045) - Minor: Migrated /chatters to Helix API. (#4088, #4097, #4114) - Minor: Migrated /mods to Helix API. (#4103) +- Minor: Improved text selection to match Windows native behaviour. (#4127) - Minor: Add settings tooltips. (#3437) - Minor: Improved look of tabs when using a layout other than top. (#3925) - Bugfix: Fixed `Add new account` dialog causing main chatterino window to be non movable. (#4121) diff --git a/src/messages/layouts/MessageLayoutElement.cpp b/src/messages/layouts/MessageLayoutElement.cpp index 96e4c73e3..92a2db023 100644 --- a/src/messages/layouts/MessageLayoutElement.cpp +++ b/src/messages/layouts/MessageLayoutElement.cpp @@ -327,7 +327,8 @@ int TextLayoutElement::getMouseOverIndex(const QPoint &abs) const auto &&text = this->getText(); auto width = metrics.horizontalAdvance(this->getText()[i]); - if (x + width > abs.x()) + // accept mouse to be at only 50%+ of character width to increase index + if (x + (width * 0.5) > abs.x()) { if (text.size() > i + 1 && QChar::isLowSurrogate(text[i].unicode())) {