v1.2.4: Fixed key_submit not properly working with multi-action entires
3 files changed, 15 insertions(+), 4 deletions(-)

M .hgignore
M meson.build
M src/wofi.c
M .hgignore +1 -0
@@ 5,3 5,4 @@ 
 ^build$
 ^debug$
 ^Debug$
+^noasan$

          
M meson.build +1 -1
@@ 1,4 1,4 @@ 
-project('wofi', 'c', version : 'v1.2.2', default_options : ['c_std=c99', 'buildtype=release', 'warning_level=2'])
+project('wofi', 'c', version : 'v1.2.4', default_options : ['c_std=c99', 'buildtype=release', 'warning_level=2'])
 cc = meson.get_compiler('c')
 
 pkgcfg = import('pkgconfig')

          
M src/wofi.c +13 -3
@@ 1294,9 1294,19 @@ static gboolean key_press(GtkWidget* wid
 		GList* children = gtk_flow_box_get_selected_children(GTK_FLOW_BOX(inner_box));
 		if(gtk_widget_has_focus(entry)) {
 			g_signal_emit_by_name(entry, "activate", entry, NULL);
-		} else if(gtk_widget_has_focus(inner_box) || (children->data != NULL && gtk_widget_has_focus(children->data))) {
-			if(children->data != NULL) {
-				g_signal_emit_by_name(children->data, "activate", children->data, NULL);
+		} else if(gtk_widget_has_focus(inner_box) || children->data != NULL) {
+			gpointer obj = children->data;
+
+			if(obj != NULL) {
+				GtkWidget* exp = gtk_bin_get_child(GTK_BIN(obj));
+				if(GTK_IS_EXPANDER(exp)) {
+					GtkWidget* box = gtk_bin_get_child(GTK_BIN(exp));
+					GtkListBoxRow* row = gtk_list_box_get_selected_row(GTK_LIST_BOX(box));
+					if(row != NULL) {
+						obj = row;
+					}
+				}
+				g_signal_emit_by_name(obj, "activate", obj, NULL);
 			}
 		}
 		g_list_free(children);