diff -r fbff95933f39 -r e36a7e191d39 pidgin/gtkutils.c --- a/pidgin/gtkutils.c Sat Jul 21 19:33:10 2007 +0000 +++ b/pidgin/gtkutils.c Sat Jul 21 19:50:02 2007 +0000 @@ -2097,8 +2097,9 @@ add_completion_list(data); } + void -pidgin_setup_screenname_autocomplete(GtkWidget *entry, GtkWidget *accountopt, gboolean all) +pidgin_setup_screenname_autocomplete(GtkWidget *entry, GtkWidget *accountopt, PidginFilterBuddyCompletionEntryFunc filter_func, gpointer user_data) { gpointer cb_data = NULL; @@ -2172,6 +2173,30 @@ g_signal_connect(G_OBJECT(entry), "destroy", G_CALLBACK(screenname_autocomplete_destroyed_cb), data); } +gboolean +pidgin_screenname_autocomplete_default_filter(const PidginBuddyCompletionEntry *completion_entry, gpointer all_accounts) { + gboolean all = GPOINTER_TO_INT(all_accounts); + + if (completion_entry->is_buddy) { + return all || purple_account_is_connected(completion_entry->entry.buddy->account); + } else { + return all || (completion_entry->entry.logged_buddy->account != NULL && purple_account_is_connected(completion_entry->entry.logged_buddy->account)); + } +} + + +gboolean +pidgin_screenname_autocomplete_default_filter(const PidginBuddyCompletionEntry *completion_entry, gpointer all_accounts) { + gboolean all = GPOINTER_TO_INT(all_accounts); + + if (completion_entry->is_buddy) { + return all || purple_account_is_connected(completion_entry->entry.buddy->account); + } else { + return all || (completion_entry->entry.logged_buddy->account != NULL && purple_account_is_connected(completion_entry->entry.logged_buddy->account)); + } +} + + void pidgin_set_cursor(GtkWidget *widget, GdkCursorType cursor_type) { GdkCursor *cursor;