Fix arrows keys moving through edit history
Different fix that fixes https://github.com/vector-im/riot-web/issues/11817 by setting the flag before the callback rather than having the update method set the flag. Regressed in https://github.com/matrix-org/matrix-react-sdk/pull/3842 Fixes https://github.com/vector-im/riot-web/issues/11917
This commit is contained in:
parent
965feee86f
commit
2ed5d89c9f
1 changed files with 4 additions and 1 deletions
|
@ -126,7 +126,6 @@ export default class BasicMessageEditor extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
_updateEditorState = (selection, inputType, diff) => {
|
_updateEditorState = (selection, inputType, diff) => {
|
||||||
this._modifiedFlag = true;
|
|
||||||
renderModel(this._editorRef, this.props.model);
|
renderModel(this._editorRef, this.props.model);
|
||||||
if (selection) { // set the caret/selection
|
if (selection) { // set the caret/selection
|
||||||
try {
|
try {
|
||||||
|
@ -212,6 +211,7 @@ export default class BasicMessageEditor extends React.Component {
|
||||||
if (type === "cut") {
|
if (type === "cut") {
|
||||||
// Remove the text, updating the model as appropriate
|
// Remove the text, updating the model as appropriate
|
||||||
replaceRangeAndMoveCaret(range, []);
|
replaceRangeAndMoveCaret(range, []);
|
||||||
|
this._modifiedFlag = true;
|
||||||
}
|
}
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
|
@ -238,6 +238,7 @@ export default class BasicMessageEditor extends React.Component {
|
||||||
const text = event.clipboardData.getData("text/plain");
|
const text = event.clipboardData.getData("text/plain");
|
||||||
parts = parsePlainTextMessage(text, partCreator);
|
parts = parsePlainTextMessage(text, partCreator);
|
||||||
}
|
}
|
||||||
|
this._modifiedFlag = true;
|
||||||
const range = getRangeForSelection(this._editorRef, model, document.getSelection());
|
const range = getRangeForSelection(this._editorRef, model, document.getSelection());
|
||||||
replaceRangeAndMoveCaret(range, parts);
|
replaceRangeAndMoveCaret(range, parts);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
@ -248,6 +249,7 @@ export default class BasicMessageEditor extends React.Component {
|
||||||
if (this._isIMEComposing) {
|
if (this._isIMEComposing) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
this._modifiedFlag = true;
|
||||||
const sel = document.getSelection();
|
const sel = document.getSelection();
|
||||||
const {caret, text} = getCaretOffsetAndText(this._editorRef, sel);
|
const {caret, text} = getCaretOffsetAndText(this._editorRef, sel);
|
||||||
this.props.model.update(text, event.inputType, caret);
|
this.props.model.update(text, event.inputType, caret);
|
||||||
|
@ -258,6 +260,7 @@ export default class BasicMessageEditor extends React.Component {
|
||||||
const {caret, text} = getCaretOffsetAndText(this._editorRef, sel);
|
const {caret, text} = getCaretOffsetAndText(this._editorRef, sel);
|
||||||
const newText = text.substr(0, caret.offset) + textToInsert + text.substr(caret.offset);
|
const newText = text.substr(0, caret.offset) + textToInsert + text.substr(caret.offset);
|
||||||
caret.offset += textToInsert.length;
|
caret.offset += textToInsert.length;
|
||||||
|
this._modifiedFlag = true;
|
||||||
this.props.model.update(newText, inputType, caret);
|
this.props.model.update(newText, inputType, caret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue