diff -r 6f22f282a8cf -r eee5ad689415 pidgin/gtkrequest.c --- a/pidgin/gtkrequest.c Fri Oct 11 12:45:54 2013 +0200 +++ b/pidgin/gtkrequest.c Wed Oct 23 20:33:12 2013 +0200 @@ -1073,6 +1073,7 @@ PurpleRequestFieldGroup *group; PurpleRequestFields *fields; PidginRequestData *req_data; + const GList *it; group = purple_request_field_get_group(field); fields = purple_request_field_group_get_fields_list(group); @@ -1081,6 +1082,16 @@ gtk_widget_set_sensitive(req_data->ok_button, purple_request_fields_all_required_filled(fields) && purple_request_fields_all_valid(fields)); + + it = purple_request_fields_get_autosensitive(fields); + for (; it != NULL; it = g_list_next(it)) { + PurpleRequestField *field = it->data; + GtkWidget *widget = purple_request_field_get_ui_data(field); + + gtk_widget_set_sensitive(widget, + purple_request_field_is_sensitive(field)); + /* TODO: string fields and set_editable */ + } } static void @@ -1876,6 +1887,9 @@ continue; } + gtk_widget_set_sensitive(widget, + purple_request_field_is_sensitive(field)); + if (label) gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget);