Skip to content

Commit

Permalink
Cursor position after adding preset in sequence mode causes an incorr…
Browse files Browse the repository at this point in the history
…ect sequence formation (#6436)
  • Loading branch information
rrodionov91 authored Feb 6, 2025
1 parent 5bf9f53 commit b332258
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1676,7 +1676,6 @@ export class SequenceMode extends BaseMode {
const history = new EditorHistory(editor);
const modelChanges = new Command();
const selections = SequenceRenderer.selections;
const wasCanvasEmptyBeforeInsertion = SequenceRenderer.isEmptyCanvas();

if (selections.length > 0) {
if (this.isSelectionsContainAntisenseChains(selections)) {
Expand Down Expand Up @@ -1760,11 +1759,6 @@ export class SequenceMode extends BaseMode {
);
history.update(modelChanges);
}

if (wasCanvasEmptyBeforeInsertion) {
this.turnOnEditMode();
SequenceRenderer.moveCaretForward();
}
}

private createRnaPresetNode(preset: IRnaPreset, position: Vec2) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -468,8 +468,8 @@ export class SequenceRenderer {

SequenceRenderer.forEachNode(({ twoStrandedNode, nodeIndexOverall }) => {
if (
twoStrandedNode.senseNode?.monomer === monomer ||
twoStrandedNode.antisenseNode?.monomer === monomer
twoStrandedNode.senseNode?.monomers.includes(monomer) ||
twoStrandedNode.antisenseNode?.monomers.includes(monomer)
) {
newCaretPosition = nodeIndexOverall;
}
Expand All @@ -483,8 +483,8 @@ export class SequenceRenderer {

SequenceRenderer.forEachNode(({ twoStrandedNode, nodeIndexOverall }) => {
if (
twoStrandedNode.senseNode?.monomer === monomer ||
twoStrandedNode.antisenseNode?.monomer === monomer
twoStrandedNode.senseNode?.monomers.includes(monomer) ||
twoStrandedNode.antisenseNode?.monomers.includes(monomer)
) {
newCaretPosition = nodeIndexOverall;
}
Expand Down Expand Up @@ -1154,8 +1154,8 @@ export class SequenceRenderer {

SequenceRenderer.forEachNode(({ twoStrandedNode }) => {
if (
twoStrandedNode.senseNode?.monomer === monomer ||
twoStrandedNode.antisenseNode?.monomer === monomer
twoStrandedNode.senseNode?.monomers.includes(monomer) ||
twoStrandedNode.antisenseNode?.monomers.includes(monomer)
) {
rendererToReturn =
twoStrandedNode.senseNode?.renderer ||
Expand Down

0 comments on commit b332258

Please sign in to comment.