diff --git a/LibGUI/GWindow.cpp b/LibGUI/GWindow.cpp index fdbc6e608a..284ce123b6 100644 --- a/LibGUI/GWindow.cpp +++ b/LibGUI/GWindow.cpp @@ -339,16 +339,21 @@ void GWindow::paint_keybinds() { for (auto& keypair: m_hashed_potential_keybind_widgets) { auto widget = keypair.value; - auto rect = Rect(widget->x()-5, widget->y()-5, 12, 12); bool could_be_keybind = true; for (size_t i = 0; i < m_entered_keybind.length(); i++) { if (keypair.key.characters()[i] != m_entered_keybind.characters()[i]) { could_be_keybind = false; } } + if (could_be_keybind) { - painter.draw_text(rect, keypair.key.characters(), TextAlignment::TopLeft, Color::Black); - painter.draw_text(rect, m_entered_keybind.characters(), TextAlignment::TopLeft, Color::Green); + auto rect = Rect(widget->x()-5, widget->y()-5, 4+Font::default_font().width(keypair.key), 16); + auto highlight_rect = Rect(widget->x()-3, widget->y()-5, 0, 16); + + painter.fill_rect(rect, Color::LightGray); + painter.draw_rect(rect, Color::Black, false); + painter.draw_text(rect, keypair.key.characters(), TextAlignment::Center, Color::Black); + painter.draw_text(highlight_rect, m_entered_keybind.characters(), TextAlignment::CenterLeft, Color::MidGray); } } } @@ -401,9 +406,6 @@ void GWindow::update(const Rect& a_rect) if (!m_window_id) return; - //We probably shouldn't clear the buffer on updates - //find_keyboard_selectable(); - for (auto& pending_rect : m_pending_paint_event_rects) { if (pending_rect.contains(a_rect)) { #ifdef UPDATE_COALESCING_DEBUG