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