FIX: On chrome, focusing on a recently changed textarea would scroll

This commit is contained in:
Robin Ward 2015-12-29 14:59:12 -05:00
parent a42826f2ae
commit fd6bbc69e2
2 changed files with 25 additions and 2 deletions

View File

@ -317,12 +317,15 @@ export default Ember.Component.extend({
_selectText(from, length) {
Ember.run.scheduleOnce('afterRender', () => {
const textarea = this.$('textarea.d-editor-input')[0];
const $textarea = this.$('textarea.d-editor-input');
const textarea = $textarea[0];
const oldScrollPos = $textarea.scrollTop();
if (!this.capabilities.isIOS) {
textarea.focus();
$textarea.focus();
}
textarea.selectionStart = from;
textarea.selectionEnd = textarea.selectionStart + length;
$textarea.scrollTop(oldScrollPos);
});
},

View File

@ -516,6 +516,26 @@ testCase(`rule with a selection`, function(assert, textarea) {
});
});
testCase(`doesn't jump to bottom with long text`, function(assert, textarea) {
let longText = 'hello world.';
for (let i=0; i<8; i++) {
longText = longText + longText;
}
this.set('value', longText);
andThen(() => {
$(textarea).scrollTop(0);
textarea.selectionStart = 3;
textarea.selectionEnd = 3;
});
click('button.bold');
andThen(() => {
assert.equal($(textarea).scrollTop(), 0, 'it stays scrolled up');
});
});
componentTest('emoji', {
template: '{{d-editor value=value}}',
setup() {