Skip to content

Commit

Permalink
#4369 - Del button works as Backspace button that is wrong
Browse files Browse the repository at this point in the history
  • Loading branch information
burcinkarimov committed Apr 4, 2024
1 parent 0bc8caf commit 11744ab
Showing 1 changed file with 56 additions and 45 deletions.
101 changes: 56 additions & 45 deletions packages/ketcher-core/src/application/editor/modes/SequenceMode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -480,54 +480,65 @@ export class SequenceMode extends BaseMode {
}

private get keyboardEventHandlers() {
return {
delete: {
shortcut: ['Backspace', 'Delete'],
handler: () => {
const editor = CoreEditor.provideEditorInstance();
const previousNode = SequenceRenderer.previousNode;
const previousCaretPosition = SequenceRenderer.caretPosition;
const selections = SequenceRenderer.selections;
const modelChanges = new Command();
let nodesToDelete: NodesSelection;

if (selections.length) {
modelChanges.merge(this.deleteSelectedDrawingEntities());
nodesToDelete = selections;
} else if (previousNode) {
previousNode.monomers.forEach((monomer) => {
modelChanges.merge(
editor.drawingEntitiesManager.deleteMonomer(monomer),
);
});
nodesToDelete = [
[
{
node: previousNode,
nodeIndexOverall:
SequenceRenderer.previousCaretPosition as number,
},
],
];
} else {
return;
}
const deleteNode = (direction: 'left' | 'right') => {
const editor = CoreEditor.provideEditorInstance();
const nodeToDelete =
direction === 'left'
? SequenceRenderer.previousNode
: SequenceRenderer.getNodeByPointer(SequenceRenderer.caretPosition);
const caretPosition =
direction === 'left'
? (SequenceRenderer.previousCaretPosition as number)
: SequenceRenderer.caretPosition;
const selections = SequenceRenderer.selections;
const modelChanges = new Command();
let nodesToDelete: NodesSelection;

if (selections.length) {
modelChanges.merge(this.deleteSelectedDrawingEntities());
nodesToDelete = selections;
} else if (nodeToDelete) {
nodeToDelete.monomers.forEach((monomer) => {
modelChanges.merge(
editor.drawingEntitiesManager.deleteMonomer(monomer),
);
});
nodesToDelete = [
[
{
node: nodeToDelete,
nodeIndexOverall: caretPosition,
},
],
];
} else {
return;
}

modelChanges.merge(this.handleNodesDeletion(nodesToDelete));
modelChanges.merge(this.handleNodesDeletion(nodesToDelete));

this.finishNodesDeletion(
modelChanges,
previousCaretPosition,
nodesToDelete[0][0].nodeIndexOverall,
);
this.finishNodesDeletion(
modelChanges,
caretPosition,
nodesToDelete[0][0].nodeIndexOverall,
);

if (
SequenceRenderer.caretPosition === 0 &&
SequenceRenderer.chainsCollection.chains.length === 0
) {
this.startNewSequence();
}
},
if (
SequenceRenderer.caretPosition === 0 &&
SequenceRenderer.chainsCollection.chains.length === 0
) {
this.startNewSequence();
}
};

return {
delete: {
shortcut: ['Delete'],
handler: () => deleteNode('right'),
},
backspace: {
shortcut: ['Backspace'],
handler: () => deleteNode('left'),
},
'turn-off-edit-mode': {
shortcut: ['Escape'],
Expand Down

0 comments on commit 11744ab

Please sign in to comment.