focus text input on popup dialogs
This commit is contained in:
@@ -63,6 +63,8 @@ kEventResult NodeTextInput::handle_event(Event* e)
|
||||
m_cursor_visible = true;
|
||||
break;
|
||||
case kEventType::KeyDown:
|
||||
if (!has_focus())
|
||||
return kEventResult::Available;
|
||||
//switch (ke->m_key)
|
||||
//{
|
||||
//case VK_BACK:
|
||||
@@ -74,6 +76,8 @@ kEventResult NodeTextInput::handle_event(Event* e)
|
||||
//}
|
||||
break;
|
||||
case kEventType::KeyUp:
|
||||
if (!has_focus())
|
||||
return kEventResult::Available;
|
||||
if (ke->m_key == kKey::KeyEnter && on_return)
|
||||
on_return(this);
|
||||
if (ke->m_key == kKey::KeyBackspace)
|
||||
@@ -86,6 +90,8 @@ kEventResult NodeTextInput::handle_event(Event* e)
|
||||
}
|
||||
break;
|
||||
case kEventType::KeyChar:
|
||||
if (!has_focus())
|
||||
return kEventResult::Available;
|
||||
timer = 0;
|
||||
m_cursor_visible = true;
|
||||
if (ke->m_char == '\b' // backspace
|
||||
@@ -163,6 +169,11 @@ void NodeTextInput::update_layout()
|
||||
m_off.x = (w - m_text_mesh.bb.x) + pad[3];
|
||||
}
|
||||
|
||||
bool NodeTextInput::has_focus() noexcept
|
||||
{
|
||||
return root()->current_key_capture.get() == this;
|
||||
}
|
||||
|
||||
void NodeTextInput::handle_resize(glm::vec2 old_size, glm::vec2 new_size, float zoom)
|
||||
{
|
||||
auto pad = GetPadding();
|
||||
|
||||
Reference in New Issue
Block a user