diff --git a/src/graphics/ui/elements/TextBox.cpp b/src/graphics/ui/elements/TextBox.cpp index 81732348f..ed5fb436e 100644 --- a/src/graphics/ui/elements/TextBox.cpp +++ b/src/graphics/ui/elements/TextBox.cpp @@ -616,8 +616,15 @@ bool TextBox::isAutoResize() const { return autoresize; } +void TextBox::defocus() { + Container::defocus(); + gui.getInput().stopTextInput(); +} + + void TextBox::onFocus() { Container::onFocus(); + gui.getInput().startTextInput(); if (onEditStart) { setCaret(input.size()); onEditStart(); diff --git a/src/graphics/ui/elements/TextBox.hpp b/src/graphics/ui/elements/TextBox.hpp index c4b88f909..5a8916694 100644 --- a/src/graphics/ui/elements/TextBox.hpp +++ b/src/graphics/ui/elements/TextBox.hpp @@ -230,6 +230,7 @@ namespace gui { virtual bool isShowLineNumbers() const; virtual void reposition() override; + virtual void defocus() override; virtual void onFocus() override; virtual void refresh() override; virtual void doubleClick(int x, int y) override; diff --git a/src/graphics/ui/elements/UINode.cpp b/src/graphics/ui/elements/UINode.cpp index 3adcb1da9..ee63a02b5 100644 --- a/src/graphics/ui/elements/UINode.cpp +++ b/src/graphics/ui/elements/UINode.cpp @@ -108,13 +108,11 @@ bool UINode::isPressed() const { } void UINode::onFocus() { - gui.getInput().startTextInput(); focused = true; focusCallbacks.notify(gui); } void UINode::defocus() { - gui.getInput().stopTextInput(); focused = false; defocusCallbacks.notify(gui); } diff --git a/src/graphics/ui/elements/UINode.hpp b/src/graphics/ui/elements/UINode.hpp index fc64527fd..f1536094e 100644 --- a/src/graphics/ui/elements/UINode.hpp +++ b/src/graphics/ui/elements/UINode.hpp @@ -192,6 +192,7 @@ namespace gui { virtual UINode* listenFocus(const onaction& action); virtual UINode* listenDefocus(const onaction& action); + virtual void defocus(); virtual void onFocus(); virtual void doubleClick(int x, int y); virtual void click(int x, int y); @@ -201,7 +202,6 @@ namespace gui { virtual void scrolled(int value); bool isPressed() const; - void defocus(); bool isFocused() const; /// @brief Check if element catches all user input when focused