From c4374bfacc9ab674229f25654fae1df4770a2470 Mon Sep 17 00:00:00 2001 From: piotr Date: Tue, 14 Jul 2020 04:06:06 +0200 Subject: [PATCH 1/2] autoselect 1st search result --- dmenu/dmenu_classes.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dmenu/dmenu_classes.cc b/dmenu/dmenu_classes.cc index d3eac7f..0635e59 100644 --- a/dmenu/dmenu_classes.cc +++ b/dmenu/dmenu_classes.cc @@ -106,6 +106,11 @@ bool DMenu::on_key_press_event(GdkEventKey* key_event) { this -> searchbox.set_text(this -> search_phrase); this -> filter_view(); return true; + } else if (key_event -> keyval == GDK_KEY_Return) { + std::cout << "Enter hit\n"; + // Workaround to launch the single item which has been selected programmatically + this -> get_children()[1] -> activate(); + return true; } else if (key_event -> keyval == GDK_KEY_Insert) { this -> search_phrase = ""; case_sensitive = !case_sensitive; @@ -157,6 +162,11 @@ void DMenu::filter_view() { item -> signal_activate().connect(sigc::bind(sigc::mem_fun (*this, &DMenu::on_item_clicked), command)); this -> append(*item); + // This will highlight 1st menu item, still it won't start on Enter. + // See workaround in on_key_press_event. + if (cnt == 0) { + item -> select(); + } cnt++; if (cnt > rows - 1) { limit_exhausted = true; From 7f6fc8a59dc431cc57b891d7bda10abd00b50cab Mon Sep 17 00:00:00 2001 From: piotr Date: Wed, 15 Jul 2020 01:19:55 +0200 Subject: [PATCH 2/2] testing line removed --- dmenu/dmenu_classes.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/dmenu/dmenu_classes.cc b/dmenu/dmenu_classes.cc index 0635e59..b2435bf 100644 --- a/dmenu/dmenu_classes.cc +++ b/dmenu/dmenu_classes.cc @@ -107,7 +107,6 @@ bool DMenu::on_key_press_event(GdkEventKey* key_event) { this -> filter_view(); return true; } else if (key_event -> keyval == GDK_KEY_Return) { - std::cout << "Enter hit\n"; // Workaround to launch the single item which has been selected programmatically this -> get_children()[1] -> activate(); return true;