diff --git a/chrome/content/zotero/about.xul b/chrome/content/zotero/about.xul
index 7f06013e2..08906ccd8 100644
--- a/chrome/content/zotero/about.xul
+++ b/chrome/content/zotero/about.xul
@@ -10,7 +10,7 @@
orient="vertical"
buttons="accept"
buttonlabelaccept="&zotero.about.close;"
- onload="moveToAlertPosition(); sizeToContent();"
+ onload="moveToAlertPosition(); sizeToContent(); document.documentElement.getButton('accept').focus();"
ondialogaccept="return true;">
@@ -60,7 +60,7 @@
-
+
diff --git a/chrome/content/zotero/bindings/itembox.xml b/chrome/content/zotero/bindings/itembox.xml
index d763c9297..55bbb0e7b 100644
--- a/chrome/content/zotero/bindings/itembox.xml
+++ b/chrome/content/zotero/bindings/itembox.xml
@@ -1422,13 +1422,25 @@
|| fieldName == 'creator') {
t.setAttribute('type', 'autocomplete');
t.setAttribute('autocompletesearch', 'zotero');
+
let params = {
fieldName: fieldName,
libraryID: this.item.libraryID
};
if (field == 'creator') {
params.fieldMode = parseInt(elem.getAttribute('fieldMode'));
- params.itemID = itemID ? itemID : '';
+
+ // Include itemID and creatorTypeID so the autocomplete can
+ // avoid showing results for creators already set on the item
+ let row = Zotero.getAncestorByTagName(elem, 'row');
+ let creatorTypeID = parseInt(
+ row.getElementsByClassName('creator-type-label')[0]
+ .getAttribute('typeid')
+ );
+ if (itemID) {
+ params.itemID = itemID;
+ params.creatorTypeID = creatorTypeID;
+ }
};
t.setAttribute(
'autocompletesearchparam', JSON.stringify(params)
@@ -2163,6 +2175,25 @@