diff options
-rw-r--r-- | plugins/gtkui/ddblistview.c | 3 | ||||
-rw-r--r-- | plugins/gtkui/ddblistview.h | 1 | ||||
-rw-r--r-- | plugins/gtkui/gtkui.c | 8 | ||||
-rw-r--r-- | plugins/gtkui/search.c | 2 |
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); } } |