I had to mostly revert patch-82; it made Rhythmbox segfault more or less immediately on startup. The core of the change is this: @@ -108,7 +108,7 @@ NULL }; - rb_sourcelist_model_type = g_type_register_static (GTK_TYPE_LIST_STORE, "RBSourceListModel", + rb_sourcelist_model_type = g_type_register_static (GTK_TYPE_TREE_MODEL_FILTER, "RBSourceListModel", &rb_sourcelist_model_info, 0); g_type_add_interface_static (rb_sourcelist_model_type, RB_TYPE_TREE_DRAG_SOURCE, That will not work. GtkTreeModelFilter is a wrapper around another tree model; you can't just turn the parent class of RBSourceListModel (which was GtkListStore) into GtkTreeModelFilter. The right approach is to not change rb-sourcelist-model.c at all; the filter should be created by higher-level code. In this case that's rb-sourcelist.c. This is also important because the code in rb-sourcelist.c has to be aware that some sources can be hidden. Sometimes you want the code to operate on hidden sources, sometimes you don't. I've done this all in patch-84 now, just including an explanation here for future reference :)
Attachment:
signature.asc
Description: This is a digitally signed message part