Merge pull request #634 from mathquill/fix.supSubsRequireOperand-selection
Fix #632 supSubsRequireOperand detaches selection
diff --git a/src/commands/math/commands.js b/src/commands/math/commands.js
index f4e1381..1538c51 100644
--- a/src/commands/math/commands.js
+++ b/src/commands/math/commands.js
@@ -138,7 +138,7 @@
var SupSub = P(MathCommand, function(_, super_) {
_.ctrlSeq = '_{...}^{...}';
_.createLeftOf = function(cursor) {
- if (!cursor[L] && cursor.options.supSubsRequireOperand) return;
+ if (!this.replacedFragment && !cursor[L] && cursor.options.supSubsRequireOperand) return;
return super_.createLeftOf.apply(this, arguments);
};
_.contactWeld = function(cursor) {
diff --git a/test/unit/typing.test.js b/test/unit/typing.test.js
index 737d73f..c3c89f1 100644
--- a/test/unit/typing.test.js
+++ b/test/unit/typing.test.js
@@ -1039,6 +1039,9 @@
assert.equal(mq.typedText('^').latex(), 'x^{^{ }}');
assert.equal(mq.typedText('2').latex(), 'x^{^2}');
assert.equal(mq.typedText('n').latex(), 'x^{^{2n}}');
+ mq.latex('');
+ assert.equal(mq.typedText('2').latex(), '2');
+ assert.equal(mq.keystroke('Shift-Left').typedText('^').latex(), '^2');
mq.latex('');
MQ.config({ supSubsRequireOperand: true });
@@ -1057,6 +1060,9 @@
assert.equal(mq.typedText('^').latex(), 'x^{ }');
assert.equal(mq.typedText('2').latex(), 'x^2');
assert.equal(mq.typedText('n').latex(), 'x^{2n}');
+ mq.latex('');
+ assert.equal(mq.typedText('2').latex(), '2');
+ assert.equal(mq.keystroke('Shift-Left').typedText('^').latex(), '^2');
});
});
});