@@ -225,9 +225,7 @@ class MarkdownToolbarElement extends HTMLElement {
225
225
if ( ! this . hasAttribute ( 'role' ) ) {
226
226
this . setAttribute ( 'role' , 'toolbar' )
227
227
}
228
- const focusKeydownfn = focusKeydown . bind ( null , this )
229
- this . addEventListener ( 'keydown' , focusKeydownfn )
230
- focusListeners . set ( this , focusKeydownfn )
228
+ this . addEventListener ( 'keydown' , focusKeydown )
231
229
const fn = shortcut . bind ( null , this )
232
230
if ( this . field ) {
233
231
this . field . addEventListener ( 'keydown' , fn )
@@ -243,10 +241,7 @@ class MarkdownToolbarElement extends HTMLElement {
243
241
this . field . removeEventListener ( 'keydown' , fn )
244
242
shortcutListeners . delete ( this )
245
243
}
246
- const focusKeydownfn = focusListeners . get ( this )
247
- if ( focusKeydownfn ) {
248
- this . removeEventListener ( 'keydown' , focusKeydownfn )
249
- }
244
+ this . removeEventListener ( 'keydown' , focusKeydown )
250
245
}
251
246
252
247
get field ( ) : ?HTMLTextAreaElement {
@@ -257,15 +252,15 @@ class MarkdownToolbarElement extends HTMLElement {
257
252
}
258
253
}
259
254
260
- const focusListeners = new WeakMap ( )
261
-
262
- function focusKeydown ( toolbar : MarkdownToolbarElement , event : KeyboardEvent ) {
255
+ function focusKeydown ( event : KeyboardEvent ) {
263
256
const key = event . key
264
257
if ( key !== 'ArrowRight' && key !== 'ArrowLeft' && key !== 'Home' && key !== 'End' ) return
265
258
const target = event . target
259
+ const toolbar = event . currentTarget
266
260
if ( ! ( target instanceof HTMLElement ) ) return
261
+ if ( ! ( toolbar instanceof HTMLElement ) ) return
267
262
if ( ! target . hasAttribute ( 'data-md-button' ) ) return
268
- if ( target . closest ( 'markdown-toolbar' ) !== event . currentTarget ) return
263
+ if ( target . closest ( 'markdown-toolbar' ) !== toolbar ) return
269
264
270
265
const buttons = [ ]
271
266
for ( const button of toolbar . querySelectorAll ( '[data-md-button]' ) ) {
0 commit comments