diff --git a/.hgignore b/.hgignore index 83dacc7..7d2c722 100644 --- a/.hgignore +++ b/.hgignore @@ -5,3 +5,4 @@ ^build$ ^debug$ ^Debug$ +^noasan$ diff --git a/meson.build b/meson.build index 74ac0bc..1ba72f6 100644 --- a/meson.build +++ b/meson.build @@ -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') diff --git a/src/wofi.c b/src/wofi.c index 305a393..d6281c8 100644 --- a/src/wofi.c +++ b/src/wofi.c @@ -1294,9 +1294,19 @@ static gboolean key_press(GtkWidget* widget, GdkEvent* event, gpointer data) { 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);