From 108e2f48f0d87423f1f9009a1a6366aeb13b5323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Zag=C3=B3rski?= Date: Tue, 8 Mar 2022 11:03:14 +0100 Subject: [PATCH 1/2] Fixed toolbar not showing up in firefox. --- src/mermaidediting.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mermaidediting.js b/src/mermaidediting.js index 6e4a28963..9e39256d6 100644 --- a/src/mermaidediting.js +++ b/src/mermaidediting.js @@ -173,6 +173,16 @@ export default class MermaidEditing extends Plugin { domElement.addEventListener( 'input', debouncedListener ); + domElement.addEventListener( 'focus', () => { + const model = editor.model; + const selectedElement = model.document.selection.getSelectedElement(); + + // Move the selection onto the mermaid widget if it's currently not selected. + if ( selectedElement !== data.item ) { + model.change( writer => writer.setSelection( data.item, 'on' ) ); + } + }, true ); + return domElement; } From 82b92aff848fd12d73a967b2895ae7f9c84ff70d Mon Sep 17 00:00:00 2001 From: Marek Lewandowski Date: Tue, 8 Mar 2022 12:19:09 +0100 Subject: [PATCH 2/2] Added a comment referencing source issue. Also removed a stray commented line. --- src/mermaidediting.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mermaidediting.js b/src/mermaidediting.js index 9e39256d6..dc6acb5e4 100644 --- a/src/mermaidediting.js +++ b/src/mermaidediting.js @@ -173,6 +173,7 @@ export default class MermaidEditing extends Plugin { domElement.addEventListener( 'input', debouncedListener ); + /* Workaround for internal #1544 */ domElement.addEventListener( 'focus', () => { const model = editor.model; const selectedElement = model.document.selection.getSelectedElement(); @@ -227,7 +228,6 @@ export default class MermaidEditing extends Plugin { } else if ( child.name === 'div' && child.hasClass( 'ck-mermaid__preview' ) ) { // @todo: we could optimize this and not refresh mermaid if widget is in source mode. const domPreviewWrapper = domConverter.viewToDom( child, window.document ); - // console.log( child, domPreviewWrapper ); if ( domPreviewWrapper ) { domPreviewWrapper.innerHTML = newSource;