mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeMirror
synced 2024-11-23 13:56:44 +00:00
Use dispatchEvent instead of jQuery triggerHandler for focus/blur events
triggerHandler will not bubble up the DOM, which is necessary for some listeners such as Charinsert. This patch applies the fix to both CodeMirror 5 and CodeMirror 6. Bug: T361465 Change-Id: I4c01b031de0b19d72b6f2c31566a7f9cc0b02ad8
This commit is contained in:
parent
7d3482f89e
commit
f9ecb5b2de
|
@ -104,8 +104,12 @@ class CodeMirror {
|
|||
this.dirExtension,
|
||||
EditorState.readOnly.of( this.readOnly ),
|
||||
EditorView.domEventHandlers( {
|
||||
blur: () => this.$textarea.triggerHandler( 'blur' ),
|
||||
focus: () => this.$textarea.triggerHandler( 'focus' )
|
||||
blur: () => {
|
||||
this.$textarea[ 0 ].dispatchEvent( new Event( 'blur' ) );
|
||||
},
|
||||
focus: () => {
|
||||
this.$textarea[ 0 ].dispatchEvent( new Event( 'focus' ) );
|
||||
}
|
||||
} ),
|
||||
EditorView.lineWrapping,
|
||||
keymap.of( [
|
||||
|
|
|
@ -191,10 +191,10 @@ function init() {
|
|||
const $codeMirror = $( codeMirror.getWrapperElement() );
|
||||
|
||||
codeMirror.on( 'focus', () => {
|
||||
$textbox1.triggerHandler( 'focus' );
|
||||
$textbox1[ 0 ].dispatchEvent( new Event( 'focus' ) );
|
||||
} );
|
||||
codeMirror.on( 'blur', () => {
|
||||
$textbox1.triggerHandler( 'blur' );
|
||||
$textbox1[ 0 ].dispatchEvent( new Event( 'blur' ) );
|
||||
} );
|
||||
mw.hook( 'editRecovery.loadEnd' ).add( ( data ) => {
|
||||
codeMirror.on( 'change', data.fieldChangeHandler );
|
||||
|
|
Loading…
Reference in a new issue