Skip to content

Commit

Permalink
Fix mapping of view element to model element
Browse files Browse the repository at this point in the history
  • Loading branch information
oliverguenther committed Feb 19, 2024
1 parent dd47697 commit e0009c1
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/plugins/code-block/code-block-editing.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {modelCodeBlockToView, viewCodeBlockToModel, codeBlockContentToView} from
import {createCodeBlockWidget, isCodeBlockWidget} from './widget';
import DoubleClickObserver from './click-observer';
import { getPluginContext } from '../op-context/op-context';
import {viewToModelPositionOutsideModelElement} from "@ckeditor/ckeditor5-widget";

export default class CodeBlockEditing extends Plugin {

Expand Down Expand Up @@ -47,6 +48,13 @@ export default class CodeBlockEditing extends Plugin {
.for('dataDowncast')
.add(modelCodeBlockToView());

this.editor.editing.mapper.on(
'viewToModelPosition',
viewToModelPositionOutsideModelElement( this.editor.model, viewElement => {
return viewElement.hasClass( 'op-uc-code-block' )
} )
);

// Register click handler to code block to edit it immediately
view.addObserver( DoubleClickObserver );
this.listenTo( viewDocument, 'dblclick', ( eventInfo, domEventData ) => {
Expand Down
1 change: 1 addition & 0 deletions src/plugins/code-block/converters.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export function modelCodeBlockToView() {

conversionApi.mapper.bindElements( codeBlock, codeElement );
conversionApi.mapper.bindElements( codeBlock, preElement );
conversionApi.mapper.bindElements( codeBlock, langElement );

// Insert at matching position
const insertPosition = conversionApi.mapper.toViewPosition( data.range.start );
Expand Down

0 comments on commit e0009c1

Please sign in to comment.