| 745 if (purple_str_has_prefix(type_hint, "screenname")) |
745 if (purple_str_has_prefix(type_hint, "screenname")) |
| 746 { |
746 { |
| 747 GtkWidget *optmenu = NULL; |
747 GtkWidget *optmenu = NULL; |
| 748 PurpleRequestFieldGroup *group = purple_request_field_get_group(field); |
748 PurpleRequestFieldGroup *group = purple_request_field_get_group(field); |
| 749 GList *fields = group->fields; |
749 GList *fields = group->fields; |
| |
750 |
| |
751 /* Ensure the account option menu is created (if the widget hasn't |
| |
752 * been initialized already) for username auto-completion. */ |
| 750 while (fields) |
753 while (fields) |
| 751 { |
754 { |
| 752 PurpleRequestField *fld = fields->data; |
755 PurpleRequestField *fld = fields->data; |
| 753 fields = fields->next; |
756 fields = fields->next; |
| 754 |
757 |
| 755 if (purple_request_field_get_type(fld) == PURPLE_REQUEST_FIELD_ACCOUNT) |
758 if (purple_request_field_get_type(fld) == PURPLE_REQUEST_FIELD_ACCOUNT && |
| |
759 purple_request_field_is_visible(fld)) |
| 756 { |
760 { |
| 757 const char *type_hint = purple_request_field_get_type_hint(fld); |
761 const char *type_hint = purple_request_field_get_type_hint(fld); |
| 758 if (type_hint != NULL && strcmp(type_hint, "account") == 0) |
762 if (type_hint != NULL && strcmp(type_hint, "account") == 0) |
| 759 { |
763 { |
| 760 optmenu = GTK_WIDGET(purple_request_field_get_ui_data(fld)); |
764 optmenu = GTK_WIDGET(purple_request_field_get_ui_data(fld)); |
| 761 if (optmenu == NULL) { |
765 if (optmenu == NULL) { |
| 762 optmenu = GTK_WIDGET(create_account_field(fld)); |
766 optmenu = GTK_WIDGET(create_account_field(fld)); |
| 763 purple_request_field_set_ui_data(field, optmenu); |
767 purple_request_field_set_ui_data(fld, optmenu); |
| 764 } |
768 } |
| 765 break; |
769 break; |
| 766 } |
770 } |
| 767 } |
771 } |
| 768 } |
772 } |