diff --git a/browser/components/places/content/bookmarkProperties.js b/browser/components/places/content/bookmarkProperties.js index 9a6cb74c5f6..1736afb2b20 100644 --- a/browser/components/places/content/bookmarkProperties.js +++ b/browser/components/places/content/bookmarkProperties.js @@ -467,7 +467,6 @@ var BookmarkPropertiesPanel = { // The order here is important! We have to uninit the panel first, otherwise // late changes could force it to commit more transactions. gEditItemOverlay.uninitPanel(true); - gEditItemOverlay = null; this._endBatch(); window.arguments[0].performed = true; }, @@ -477,7 +476,6 @@ var BookmarkPropertiesPanel = { // changes done as part of Undo may change the panel contents and by // that force it to commit more transactions. gEditItemOverlay.uninitPanel(true); - gEditItemOverlay = null; this._endBatch(); PlacesUtils.transactionManager.undoTransaction(); window.arguments[0].performed = false; diff --git a/browser/components/places/content/editBookmarkOverlay.js b/browser/components/places/content/editBookmarkOverlay.js index de587f874fc..cac3a606368 100644 --- a/browser/components/places/content/editBookmarkOverlay.js +++ b/browser/components/places/content/editBookmarkOverlay.js @@ -209,6 +209,12 @@ var gEditItemOverlay = { // observe only tags changes, through bookmarks. if (this._itemId != -1 || this._uri || this._multiEdit) PlacesUtils.bookmarks.addObserver(this, false); + + this._element("namePicker").addEventListener("blur", this); + this._element("locationField").addEventListener("blur", this); + this._element("tagsField").addEventListener("blur", this); + this._element("keywordField").addEventListener("blur", this); + this._element("descriptionField").addEventListener("blur", this); window.addEventListener("unload", this, false); this._observersAdded = true; } @@ -388,6 +394,12 @@ var gEditItemOverlay = { if (this._itemId != -1 || this._uri || this._multiEdit) PlacesUtils.bookmarks.removeObserver(this); + this._element("namePicker").removeEventListener("blur", this); + this._element("locationField").removeEventListener("blur", this); + this._element("tagsField").removeEventListener("blur", this); + this._element("keywordField").removeEventListener("blur", this); + this._element("descriptionField").removeEventListener("blur", this); + this._observersAdded = false; } @@ -528,7 +540,7 @@ var gEditItemOverlay = { return false; }, - onNamePickerChange: function EIO_onNamePickerChange() { + onNamePickerBlur: function EIO_onNamePickerBlur() { if (this._itemId == -1) return; @@ -879,6 +891,11 @@ var gEditItemOverlay = { this._element("tagsField").value = tags.join(", "); this._updateTags(); break; + case "blur": + let replaceFn = (str, firstLetter) => firstLetter.toUpperCase(); + let nodeName = aEvent.target.id.replace(/editBMPanel_(\w)/, replaceFn); + this["on" + nodeName + "Blur"](); + break; case "unload": this.uninitPanel(false); break; diff --git a/browser/components/places/content/editBookmarkOverlay.xul b/browser/components/places/content/editBookmarkOverlay.xul index 856ab150832..d94b204f252 100644 --- a/browser/components/places/content/editBookmarkOverlay.xul +++ b/browser/components/places/content/editBookmarkOverlay.xul @@ -33,7 +33,6 @@ control="editBMPanel_namePicker" observes="paneElementsBroadcaster"/> @@ -45,7 +44,6 @@ observes="paneElementsBroadcaster"/> @@ -150,7 +148,6 @@ completedefaultindex="true" tabscrolling="true" showcommentcolumn="true" - onblur="gEditItemOverlay.onTagsFieldBlur();" observes="paneElementsBroadcaster" placeholder="&editBookmarkOverlay.tagsEmptyDesc.label;"/>