Use textInput state only for TextBox

This commit is contained in:
Stepanov Igor 2025-10-11 10:02:32 +03:00
parent 726f004893
commit dfd0100d17
4 changed files with 9 additions and 3 deletions

View file

@ -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();

View file

@ -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;

View file

@ -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);
}

View file

@ -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