mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 08:45:46 +00:00
Bug 1294366 - fix filter widget select opening only once, force focus on window on click;r=ochameau
MozReview-Commit-ID: 5xcZuoRxOco --HG-- extra : rebase_source : e755310f51db2bde134a8cb6aebcb06fdd7a16f4
This commit is contained in:
parent
cb6fdc2f74
commit
d9eda2f4cb
@ -131,6 +131,7 @@ function CSSFilterEditorWidget(el, value = "") {
|
||||
this._presetClick = this._presetClick.bind(this);
|
||||
this._savePreset = this._savePreset.bind(this);
|
||||
this._togglePresets = this._togglePresets.bind(this);
|
||||
this._resetFocus = this._resetFocus.bind(this);
|
||||
|
||||
// Passed to asyncStorage, requires binding
|
||||
this.renderPresets = this.renderPresets.bind(this);
|
||||
@ -279,6 +280,7 @@ CSSFilterEditorWidget.prototype = {
|
||||
this.filtersList.addEventListener("click", this._removeButtonClick);
|
||||
this.filtersList.addEventListener("mousedown", this._mouseDown);
|
||||
this.filtersList.addEventListener("keydown", this._keyDown);
|
||||
this.el.addEventListener("mousedown", this._resetFocus);
|
||||
|
||||
this.presetsList.addEventListener("click", this._presetClick);
|
||||
this.togglePresets.addEventListener("click", this._togglePresets);
|
||||
@ -298,6 +300,7 @@ CSSFilterEditorWidget.prototype = {
|
||||
this.filtersList.removeEventListener("click", this._removeButtonClick);
|
||||
this.filtersList.removeEventListener("mousedown", this._mouseDown);
|
||||
this.filtersList.removeEventListener("keydown", this._keyDown);
|
||||
this.el.removeEventListener("mousedown", this._resetFocus);
|
||||
|
||||
this.presetsList.removeEventListener("click", this._presetClick);
|
||||
this.togglePresets.removeEventListener("click", this._togglePresets);
|
||||
@ -608,6 +611,14 @@ CSSFilterEditorWidget.prototype = {
|
||||
}, ex => console.error(ex));
|
||||
},
|
||||
|
||||
/**
|
||||
* Workaround needed to reset the focus when using a HTML select inside a XUL panel.
|
||||
* See Bug 1294366.
|
||||
*/
|
||||
_resetFocus: function () {
|
||||
this.filterSelect.ownerDocument.defaultView.focus();
|
||||
},
|
||||
|
||||
/**
|
||||
* Clears the list and renders filters, binding required events.
|
||||
* There are some delegated events bound in _addEventListeners method
|
||||
|
Loading…
Reference in New Issue
Block a user