Item/attachment box: Prevent default label focus/blur behavior
Since ceb1dd7da3
added a tabindex on
#zotero-view-item, clicking anywhere outside a field in the pane will
blur the active field. That's an improvement, but it conflicted with our
custom label behavior - when an active field's label is clicked, we want
to blur it and keep it blurred, but the default behavior is to re-focus
it on mouseup.
Fix by preventing the default focus behavior on mousedown/click.
This commit is contained in:
parent
6a39980a97
commit
872e7b2427
2 changed files with 16 additions and 2 deletions
|
@ -264,7 +264,11 @@
|
|||
}
|
||||
});
|
||||
|
||||
this.querySelectorAll(".meta-label").forEach(label => label.addEventListener("click", this._handleMetaLabelClick));
|
||||
for (let label of this.querySelectorAll(".meta-label")) {
|
||||
// Prevent default focus/blur behavior - we implement our own below
|
||||
label.addEventListener("mousedown", event => event.preventDefault());
|
||||
label.addEventListener("click", this._handleMetaLabelClick);
|
||||
}
|
||||
}
|
||||
|
||||
destroy() {
|
||||
|
@ -625,6 +629,8 @@
|
|||
}
|
||||
|
||||
_handleMetaLabelClick = (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
let labelWrapper = event.target.closest(".meta-label");
|
||||
if (labelWrapper.nextSibling.contains(document.activeElement)) {
|
||||
document.activeElement.blur();
|
||||
|
|
|
@ -854,7 +854,15 @@
|
|||
if (!this.editable) {
|
||||
break;
|
||||
}
|
||||
label.addEventListener('click', (_) => {
|
||||
|
||||
label.addEventListener('mousedown', (event) => {
|
||||
// Prevent default focus/blur behavior - we implement our own below
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
label.addEventListener('click', (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
let labelWrapper = label.closest(".meta-label");
|
||||
if (labelWrapper.nextSibling.contains(document.activeElement)) {
|
||||
document.activeElement.blur();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue