From f15cbe71de391b383a0bbc3dc02a281698ac271a Mon Sep 17 00:00:00 2001 From: PrzeBrudny <60609703+PrzeBrudny@users.noreply.github.com> Date: Tue, 20 Oct 2020 09:03:13 +0200 Subject: [PATCH] [EGD-3409] Text boundaries fixes. (#860) --- module-gui/gui/widgets/Lines.cpp | 2 +- module-gui/gui/widgets/Text.cpp | 3 +-- module-gui/gui/widgets/TextCursor.cpp | 8 ++++++-- module-gui/gui/widgets/TextLine.cpp | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/module-gui/gui/widgets/Lines.cpp b/module-gui/gui/widgets/Lines.cpp index 801f5a208d3d766a67c61652e51a6df441995339..6dafed7b06b47d9a5be545264e2fab42a83b246f 100644 --- a/module-gui/gui/widgets/Lines.cpp +++ b/module-gui/gui/widgets/Lines.cpp @@ -72,7 +72,7 @@ namespace gui auto bound = textLine->checkBounds(cursor, code, format); if (bound == InputBound::CANT_PROCESS && line == scroll_position) { - return InputBound::CANT_PROCESS; + return InputBound::HIT_BOUND; } return InputBound::CAN_ADD; diff --git a/module-gui/gui/widgets/Text.cpp b/module-gui/gui/widgets/Text.cpp index 925711ff2f82e769da5f4deba65e94a896450135..9e972184592fb42679fb8f7402853ade7853d0a9 100644 --- a/module-gui/gui/widgets/Text.cpp +++ b/module-gui/gui/widgets/Text.cpp @@ -227,7 +227,7 @@ namespace gui lines->updateScrollPosition(scroll, factor); } - if (bound != InputBound::CANT_PROCESS) { + if (!(bound & InputBound::CANT_PROCESS)) { return true; } @@ -379,7 +379,6 @@ namespace gui line.setPosition(line_x_position, line_y_position); line.setParent(this); - line.alignH(getAlignment(Axis::X), w); end = lines->last().getEnd(); line_y_position += line.height(); diff --git a/module-gui/gui/widgets/TextCursor.cpp b/module-gui/gui/widgets/TextCursor.cpp index 6bbc4dbd8e6465f679ec616633ffaf7779282349..6f5cf5c20e9fa41cc20d986e65a25ecf1a2ffc88 100644 --- a/module-gui/gui/widgets/TextCursor.cpp +++ b/module-gui/gui/widgets/TextCursor.cpp @@ -192,11 +192,15 @@ namespace gui InputBound TextCursor::processBound(InputBound bound, const InputEvent &event) { if (bound == InputBound::CAN_MOVE) { - moveCursor(inputToNavigation(event)); + if (event.isShortPress()) { + moveCursor(inputToNavigation(event)); + } } if (bound == InputBound::CAN_REMOVE) { - removeChar(); + if (event.isShortPress()) { + text->handleBackspace(event); + } } if (bound == InputBound::CAN_ADD) { diff --git a/module-gui/gui/widgets/TextLine.cpp b/module-gui/gui/widgets/TextLine.cpp index 5c2cfa418c47aeb705145b8259ce227ac34c4fdd..f4bdccc95857583921383b22981f2ef828259085 100644 --- a/module-gui/gui/widgets/TextLine.cpp +++ b/module-gui/gui/widgets/TextLine.cpp @@ -293,7 +293,7 @@ namespace gui auto text = getText(0); text.insertCode(utf_value); - if ((width_used + font->getPixelWidth(text)) <= max_width) { + if ((font->getPixelWidth(text)) <= max_width) { return InputBound::CAN_ADD; }