Fixed key_submit not properly working with multi-action entires
2 files changed, 14 insertions(+), 3 deletions(-)

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

          
M src/wofi.c +13 -3
@@ 1291,9 1291,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);