diff options
author | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-20 02:39:13 -0500 |
---|---|---|
committer | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2023-03-20 02:39:13 -0500 |
commit | 6e963519fa1879963155b06e11065e932335486f (patch) | |
tree | 9b72fa0b54cf7ddf04add4171dafda6ad64d8671 | |
parent | ac7ce5e2db9eee2c12bd835b1a705d74b11b180a (diff) | |
download | pidgin-6e963519fa1879963155b06e11065e932335486f.tar.gz |
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/
-rw-r--r-- | pidgin/gtkutils.c | 35 |
1 files changed, 10 insertions, 25 deletions
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; |