Skip to content

Commit

Permalink
Merge pull request #6730 from ckeditor/i/6453
Browse files Browse the repository at this point in the history
Fix (table): Shift+click will now use anchor cell if there is any. Closes #6453.
  • Loading branch information
jodator authored May 8, 2020
2 parents 5227b74 + f86fd8b commit d799b9d
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
2 changes: 1 addition & 1 deletion packages/ckeditor5-table/src/tableselection.js
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ export default class TableSelection extends Plugin {
return;
}

const anchorCell = getTableCellsContainingSelection( editor.model.document.selection )[ 0 ];
const anchorCell = this.getAnchorCell() || getTableCellsContainingSelection( editor.model.document.selection )[ 0 ];

if ( !anchorCell ) {
return;
Expand Down
33 changes: 33 additions & 0 deletions packages/ckeditor5-table/tests/tableselection.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,39 @@ describe( 'table selection', () => {
expect( preventDefault.called ).to.equal( true );
} );

it( 'should use the anchor cell from the selection if possible', () => {
const preventDefault = sinon.spy();

const domEventDataMock = new DomEventData( view, {
shiftKey: true,
target: view.domConverter.mapViewToDom(
// figure > table > tbody > tr > td
viewDocument.getRoot().getChild( 0 ).getChild( 1 ).getChild( 0 ).getChild( 0 ).getChild( 2 )
),
preventDefault
} );

tableSelection.setCellSelection(
modelRoot.getNodeByPath( [ 0, 1, 0 ] ),
modelRoot.getNodeByPath( [ 0, 2, 1 ] )
);
assertSelectedCells( model, [
[ 0, 0, 0 ],
[ 1, 1, 0 ],
[ 1, 1, 0 ]
] );

viewDocument.fire( 'mousedown', domEventDataMock );

assertSelectedCells( model, [
[ 1, 1, 1 ],
[ 1, 1, 1 ],
[ 0, 0, 0 ]
] );

expect( preventDefault.called ).to.equal( true );
} );

it( 'should ignore `selectionChange` event when selecting cells', () => {
const consoleLog = sinon.stub( console, 'log' );
const preventDefault = sinon.spy();
Expand Down

0 comments on commit d799b9d

Please sign in to comment.