diff --git a/Userland/DevTools/HackStudio/Locator.cpp b/Userland/DevTools/HackStudio/Locator.cpp index 44eba20f23138f..705fd23f0762cb 100644 --- a/Userland/DevTools/HackStudio/Locator.cpp +++ b/Userland/DevTools/HackStudio/Locator.cpp @@ -103,9 +103,12 @@ Locator::Locator(Core::Object* parent) m_textbox->on_change = [this] { update_suggestions(); }; + m_textbox->on_escape_pressed = [this] { m_popup_window->hide(); + m_textbox->set_focus(false); }; + m_textbox->on_up_pressed = [this] { GUI::ModelIndex new_index = m_suggestion_view->selection().first(); if (new_index.is_valid()) @@ -138,6 +141,10 @@ Locator::Locator(Core::Object* parent) open_suggestion(selected_index); }; + m_textbox->on_focusout = [&]() { + close(); + }; + m_popup_window = GUI::Window::construct(parent); // FIXME: This is obviously not a tooltip window, but it's the closest thing to what we want atm. m_popup_window->set_window_type(GUI::WindowType::Tooltip);