FIX: On chrome, focusing on a recently changed textarea would scroll
This commit is contained in:
parent
a42826f2ae
commit
fd6bbc69e2
|
@ -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);
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue