Detach event listeners on destroy
if "on" receives "this", it attaches "eventListeners" array to "this" and stores "{ element, type, callback }" hash in there. later, during the destruction process, all the entries from this array will be processed by "unbindListeners" helper to detach all the event listeners.
This commit is contained in:
parent
dfc09b8e04
commit
b36b92b247
12
src/js/controls.js
vendored
12
src/js/controls.js
vendored
@ -402,7 +402,8 @@ const controls = {
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
|
||||
bindMenuItemShortcuts(menuItem, type) {
|
||||
// Navigate through menus via arrow keys and space
|
||||
on(
|
||||
on.call(
|
||||
this,
|
||||
menuItem,
|
||||
'keydown keyup',
|
||||
event => {
|
||||
@ -452,7 +453,7 @@ const controls = {
|
||||
|
||||
// Enter will fire a `click` event but we still need to manage focus
|
||||
// So we bind to keyup which fires after and set focus here
|
||||
on(menuItem, 'keyup', event => {
|
||||
on.call(this, menuItem, 'keyup', event => {
|
||||
if (event.which !== 13) {
|
||||
return;
|
||||
}
|
||||
@ -1463,7 +1464,7 @@ const controls = {
|
||||
bindMenuItemShortcuts.call(this, menuItem, type);
|
||||
|
||||
// Show menu on click
|
||||
on(menuItem, 'click', () => {
|
||||
on.call(this, menuItem, 'click', () => {
|
||||
showMenuPanel.call(this, type, false);
|
||||
});
|
||||
|
||||
@ -1515,7 +1516,8 @@ const controls = {
|
||||
);
|
||||
|
||||
// Go back via keyboard
|
||||
on(
|
||||
on.call(
|
||||
this,
|
||||
pane,
|
||||
'keydown',
|
||||
event => {
|
||||
@ -1535,7 +1537,7 @@ const controls = {
|
||||
);
|
||||
|
||||
// Go back via button click
|
||||
on(backButton, 'click', () => {
|
||||
on.call(this, backButton, 'click', () => {
|
||||
showMenuPanel.call(this, 'home', false);
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user