rendered paste body## old_revision [3f8b4b5a421935e71b45c7b8260c8bb32a330384]## patch "pidgin/gtkprefs.c"# from [9a3650562cf429fb3814c4a9f3006d939026f1cb]# to [6fc27b209db9a04c577c150e322c9a0d3e518fa2]#============================================================--- pidgin/gtkprefs.c 9a3650562cf429fb3814c4a9f3006d939026f1cb+++ pidgin/gtkprefs.c 6fc27b209db9a04c577c150e322c9a0d3e518fa2@@ -1949,6 +1949,22 @@ preview_button_clicked(GtkWidget *widget gst_element_set_state(pipeline, GST_STATE_PLAYING); }+static void repopulate(const char *name, PurplePrefType type, gconstpointer val, gpointer data)+{+ GtkWidget *vbox = data;+ GList *list = gtk_container_get_children(GTK_CONTAINER(vbox));+ while (list) {+ gtk_widget_destroy(list->data);+ list = g_list_delete_link(list, list);+ }+ purple_debug_fatal("XXX", "repop\n");+ pidgin_prefs_dropdown(vbox, _("Test:"),+ PURPLE_PREF_STRING, "/test",+ "A", "a",+ "B", "b",+ NULL);+}+ static GtkWidget * media_page() {@@ -1997,6 +2013,20 @@ media_page() "/purple/media/audio/device", audio_items);+ {+ vbox = pidgin_make_frame(ret, _("Change"));+ dd = pidgin_prefs_dropdown(vbox, _("Test:"),+ PURPLE_PREF_STRING, "/test",+ "A", "a",+ "B", "b",+ NULL);++ purple_prefs_connect_callback(vbox, "/purple/media/audio/device",+ repopulate, vbox);+ g_signal_connect_swapped(vbox, "destroy",+ purple_prefs_disconnect_by_handle, vbox);+ }+ gtk_size_group_add_widget(sg, dd); gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);