From 6e963519fa1879963155b06e11065e932335486f Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Mon, 20 Mar 2023 02:39:13 -0500 Subject: Fix username autocompletion This code still assumed the account chooser was a combo box, but it's a drop down now. Testing Done: Opened New IM dialog, typed a few letters, and selected a username from the Demo account (while a different account was selected.) Reviewed at https://reviews.imfreedom.org/r/2362/ --- pidgin/gtkutils.c | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) (limited to 'pidgin') diff --git a/pidgin/gtkutils.c b/pidgin/gtkutils.c index 78ff3b174f..ab340f908c 100644 --- a/pidgin/gtkutils.c +++ b/pidgin/gtkutils.c @@ -45,6 +45,7 @@ #include "gtkdialogs.h" #include "gtkrequest.h" #include "gtkutils.h" +#include "pidginaccountchooser.h" #include "pidgincore.h" /****************************************************************************** @@ -74,7 +75,7 @@ enum { typedef struct { GtkWidget *entry; - GtkWidget *accountopt; + GtkWidget *chooser; PidginFilterBuddyCompletionEntryFunc filter_func; gpointer filter_func_user_data; @@ -121,24 +122,6 @@ pidgin_make_frame(GtkWidget *parent, const char *title) return vbox2; } -static void -aop_option_menu_select_by_data(GtkWidget *optmenu, gpointer data) -{ - GtkTreeModel *model; - GtkTreeIter iter; - gpointer iter_data; - model = gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu)); - if (gtk_tree_model_get_iter_first(model, &iter)) { - do { - gtk_tree_model_get(model, &iter, AOP_DATA_COLUMN, &iter_data, -1); - if (iter_data == data) { - gtk_combo_box_set_active_iter(GTK_COMBO_BOX(optmenu), &iter); - return; - } - } while (gtk_tree_model_iter_next(model, &iter)); - } -} - void pidgin_retrieve_user_info(PurpleConnection *conn, const char *name) { PurpleNotifyUserInfo *info = NULL; @@ -232,8 +215,7 @@ buddyname_completion_match_selected_cb(G_GNUC_UNUSED GtkEntryCompletion *complet PidginCompletionData *data) { GValue val; - GtkWidget *optmenu = data->accountopt; - PurpleAccount *account; + PurpleAccount *account = NULL; val.g_type = 0; gtk_tree_model_get_value(model, iter, COMPLETION_BUDDY_COLUMN, &val); @@ -244,11 +226,14 @@ buddyname_completion_match_selected_cb(G_GNUC_UNUSED GtkEntryCompletion *complet account = g_value_get_pointer(&val); g_value_unset(&val); - if (account == NULL) + if(!PURPLE_IS_ACCOUNT(account)) { return TRUE; + } - if (optmenu != NULL) - aop_option_menu_select_by_data(optmenu, account); + if(PIDGIN_IS_ACCOUNT_CHOOSER(data->chooser)) { + pidgin_account_chooser_set_selected(PIDGIN_ACCOUNT_CHOOSER(data->chooser), + account); + } return TRUE; } @@ -432,7 +417,7 @@ pidgin_setup_screenname_autocomplete( G_TYPE_POINTER); data->entry = entry; - data->accountopt = chooser; + data->chooser = chooser; if (filter_func == NULL) { data->filter_func = pidgin_screenname_autocomplete_default_filter; data->filter_func_user_data = NULL; -- cgit v1.2.1