keymaster icon indicating copy to clipboard operation
keymaster copied to clipboard

Feature Request: unbind scope

Open caillou opened this issue 8 years ago • 1 comments

Feature Request: Unbind Scope

Motivaiton

I often find myself writing the following code:

['up', 'down', 'esc'].forEach((key) => {
  keymaster.unbind(this.scope, key)
})

While this works, it could potentially lead to memory leaks, if a specific key is forgotten. E.g. if my module would have registered key('space', this.scope, cb).

Proposed Solution

A possibility to remove every event-handler for a given scope would be very helpful. Possible APIs:

keymaster.unbind(null, this.scope)
keymaster.unbindScope(this.scope)

Discussion

If such a feature is desired, I would be willing to send a PR along with tests. This being said, I would love to get your input on this beforehand. Do you consider the use-case good enough to add this functionality to keymaster? And if yes, what would the ideal API for this be?

caillou avatar Dec 14 '16 14:12 caillou

If you are already using scopes, can't you just do: key.deleteScope(this.scope);

According to the docs deleteScope removes all events that are in that scope

tbleckert avatar May 25 '17 10:05 tbleckert