Skip to content

Commit d449cda

Browse files
committed
GWindow: Highlight for multicharacter SerenityKeys
1 parent 053f41f commit d449cda

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

LibGUI/GWindow.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,12 +233,21 @@ void GWindow::event(CEvent& event)
233233
if (m_keybind_mode) {
234234
//If we're in keybind mode indicate widgets in m_potential_keybind_widgets
235235
GPainter painter(*m_main_widget);
236-
painter.draw_text(Rect(20,20,20,20), m_entered_keybind.characters(), TextAlignment::TopLeft, Color::Green);
237236

238237
for (auto& keypair: m_hashed_potential_keybind_widgets) {
239238
auto widget = keypair.value;
240239
auto rect = Rect(widget->x()-5, widget->y()-5, 12, 12);
241-
painter.draw_text(rect, keypair.key.characters(), TextAlignment::TopLeft, Color::Black);
240+
bool could_be_keybind = true;
241+
for (size_t i = 0; i < m_entered_keybind.length(); i++) {
242+
if (keypair.key.characters()[i] != m_entered_keybind.characters()[i]) {
243+
could_be_keybind = false;
244+
}
245+
}
246+
if (could_be_keybind) {
247+
painter.draw_text(rect, keypair.key.characters(), TextAlignment::TopLeft, Color::Black);
248+
painter.draw_text(rect, m_entered_keybind.characters(), TextAlignment::TopLeft, Color::Green);
249+
}
250+
242251
}
243252

244253
}
@@ -280,7 +289,6 @@ void GWindow::event(CEvent& event)
280289
if (m_keybind_mode) {
281290
if (event.type() == GEvent::KeyUp) {
282291
StringBuilder builder;
283-
//Y u no work
284292
builder.append(m_entered_keybind);
285293
builder.append(keyevent.text());
286294
m_entered_keybind = builder.to_string();
@@ -297,7 +305,6 @@ void GWindow::event(CEvent& event)
297305
} else if (m_entered_keybind.length() >= m_max_keybind_length) {
298306
m_keybind_mode = false;
299307
}
300-
//m_entered_keybind.append(keyevent.text());
301308
update();
302309
}
303310
} else {

0 commit comments

Comments
 (0)