summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/gtkui/ddblistview.c3
-rw-r--r--plugins/gtkui/ddblistview.h1
-rw-r--r--plugins/gtkui/gtkui.c8
-rw-r--r--plugins/gtkui/search.c2
4 files changed, 9 insertions, 5 deletions
diff --git a/plugins/gtkui/ddblistview.c b/plugins/gtkui/ddblistview.c
index 1406e95b..996e66cd 100644
--- a/plugins/gtkui/ddblistview.c
+++ b/plugins/gtkui/ddblistview.c
@@ -475,6 +475,9 @@ ddb_listview_destroy(GtkObject *object)
void
ddb_listview_refresh (DdbListview *listview, uint32_t flags) {
+ if (flags & DDB_LIST_CHANGED) {
+ ddb_listview_build_groups (listview);
+ }
if (flags & DDB_REFRESH_LIST) {
gtk_widget_queue_draw (listview->list);
}
diff --git a/plugins/gtkui/ddblistview.h b/plugins/gtkui/ddblistview.h
index 5ba1e0ed..c7476607 100644
--- a/plugins/gtkui/ddblistview.h
+++ b/plugins/gtkui/ddblistview.h
@@ -204,6 +204,7 @@ enum {
DDB_REFRESH_HSCROLL = 2,
DDB_REFRESH_VSCROLL = 4,
DDB_REFRESH_LIST = 8,
+ DDB_LIST_CHANGED = 16,
};
void ddb_listview_refresh (DdbListview *listview, uint32_t flags);
diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c
index a8150366..e1ee403a 100644
--- a/plugins/gtkui/gtkui.c
+++ b/plugins/gtkui/gtkui.c
@@ -582,8 +582,8 @@ gtkui_get_curr_playlist_modtime (void) {
return res;
}
-static int
-gtkui_on_configchanged (ddb_event_t *ev, uintptr_t data) {
+static gboolean
+gtkui_on_configchanged (void *data) {
// order and looping
const char *w;
@@ -613,7 +613,7 @@ gtkui_on_configchanged (ddb_event_t *ev, uintptr_t data) {
// tray icon
gtkui_update_status_icon (NULL);
- return 0;
+ return FALSE;
}
static gboolean
@@ -1015,7 +1015,7 @@ gtkui_thread (void *ctx) {
wingeom_restore (mainwin, "mainwin", 40, 40, 500, 300, 0);
- gtkui_on_configchanged (NULL, 0);
+ gtkui_on_configchanged (NULL);
gtkui_init_theme_colors ();
// visibility of statusbar and headers
diff --git a/plugins/gtkui/search.c b/plugins/gtkui/search.c
index 6f5bf544..4f0eeb46 100644
--- a/plugins/gtkui/search.c
+++ b/plugins/gtkui/search.c
@@ -88,7 +88,7 @@ void
search_refresh (void) {
if (searchwin && gtk_widget_get_visible (searchwin)) {
GtkWidget *pl = lookup_widget (searchwin, "searchlist");
- ddb_listview_refresh (DDB_LISTVIEW (pl), DDB_REFRESH_VSCROLL | DDB_REFRESH_LIST);
+ ddb_listview_refresh (DDB_LISTVIEW (pl), DDB_REFRESH_VSCROLL | DDB_REFRESH_LIST | DDB_LIST_CHANGED);
}
}