summaryrefslogtreecommitdiffstats
path: root/application/palemoon/components/places/content/editBookmarkOverlay.js
diff options
context:
space:
mode:
authorjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-04-25 15:48:44 +0200
committerjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-04-25 15:48:44 +0200
commit3ab6c7feee8126bdfc5c9ab9371db41102e12e95 (patch)
treea309c45826300b888238b6a517051fe7e71d63eb /application/palemoon/components/places/content/editBookmarkOverlay.js
parentb18a9cf86ea25bc52d9cfea584e3aa8bfbe81f0a (diff)
parentb069dabc91b7e0f5f8d161cdbe598276a21d6d68 (diff)
downloadUXP-3ab6c7feee8126bdfc5c9ab9371db41102e12e95.tar
UXP-3ab6c7feee8126bdfc5c9ab9371db41102e12e95.tar.gz
UXP-3ab6c7feee8126bdfc5c9ab9371db41102e12e95.tar.lz
UXP-3ab6c7feee8126bdfc5c9ab9371db41102e12e95.tar.xz
UXP-3ab6c7feee8126bdfc5c9ab9371db41102e12e95.zip
Merge branch 'master' of https://github.com/MoonchildProductions/UXP into pm_url_1
Diffstat (limited to 'application/palemoon/components/places/content/editBookmarkOverlay.js')
-rw-r--r--application/palemoon/components/places/content/editBookmarkOverlay.js47
1 files changed, 34 insertions, 13 deletions
diff --git a/application/palemoon/components/places/content/editBookmarkOverlay.js b/application/palemoon/components/places/content/editBookmarkOverlay.js
index 98bfcccd7..43645cc73 100644
--- a/application/palemoon/components/places/content/editBookmarkOverlay.js
+++ b/application/palemoon/components/places/content/editBookmarkOverlay.js
@@ -16,6 +16,7 @@ var gEditItemOverlay = {
_itemType: -1,
_readOnly: false,
_hiddenRows: [],
+ _onPanelReady: false,
_observersAdded: false,
_staticFoldersListBuilt: false,
_initialized: false,
@@ -50,6 +51,7 @@ var gEditItemOverlay = {
this._readOnly = aInfo && aInfo.forceReadOnly;
this._titleOverride = aInfo && aInfo.titleOverride ? aInfo.titleOverride
: "";
+ this._onPanelReady = aInfo && aInfo.onPanelReady;
},
_showHideRows: function EIO__showHideRows() {
@@ -219,7 +221,15 @@ var gEditItemOverlay = {
this._observersAdded = true;
}
- this._initialized = true;
+ let focusElement = () => {
+ this._initialized = true;
+ };
+
+ if (this._onPanelReady) {
+ this._onPanelReady(focusElement);
+ } else {
+ focusElement();
+ }
},
/**
@@ -243,11 +253,7 @@ var gEditItemOverlay = {
if (field.value != aValue) {
field.value = aValue;
-
- // clear the undo stack
- var editor = field.editor;
- if (editor)
- editor.transactionManager.clear();
+ this._editorTransactionManagerClear(field);
}
},
@@ -352,6 +358,26 @@ var gEditItemOverlay = {
return document.getElementById("editBMPanel_" + aID);
},
+ _editorTransactionManagerClear: function EIO__editorTransactionManagerClear(aItem) {
+ // Clear the editor's undo stack
+ let transactionManager;
+ try {
+ transactionManager = aItem.editor.transactionManager;
+ } catch (e) {
+ // When retrieving the transaction manager, editor may be null resulting
+ // in a TypeError. Additionally, the transaction manager may not
+ // exist yet, which causes access to it to throw NS_ERROR_FAILURE.
+ // In either event, the transaction manager doesn't exist it, so we
+ // don't need to worry about clearing it.
+ if (!(e instanceof TypeError) && e.result != Cr.NS_ERROR_FAILURE) {
+ throw e;
+ }
+ }
+ if (transactionManager) {
+ transactionManager.clear();
+ }
+ },
+
_getItemStaticTitle: function EIO__getItemStaticTitle() {
if (this._titleOverride)
return this._titleOverride;
@@ -370,11 +396,7 @@ var gEditItemOverlay = {
var namePicker = this._element("namePicker");
namePicker.value = this._getItemStaticTitle();
namePicker.readOnly = this._readOnly;
-
- // clear the undo stack
- var editor = namePicker.editor;
- if (editor)
- editor.transactionManager.clear();
+ this._editorTransactionManagerClear(namePicker);
},
uninitPanel: function EIO_uninitPanel(aHideCollapsibleElements) {
@@ -963,8 +985,7 @@ var gEditItemOverlay = {
var namePicker = this._element("namePicker");
if (namePicker.value != aValue) {
namePicker.value = aValue;
- // clear undo stack
- namePicker.editor.transactionManager.clear();
+ this._editorTransactionManagerClear(namePicker);
}
break;
case "uri":