summaryrefslogtreecommitdiff
path: root/addons/mail/static
diff options
context:
space:
mode:
authorJulien Giannone <jgi@odoo.com>2020-11-20 07:47:37 +0000
committerJulien Giannone <jgi@odoo.com>2020-11-24 11:00:53 +0000
commitd498f899aa2ef81acbcd035896b9fcc912e4d52b (patch)
tree5d10f75772d1c13949f0dba9e8c90983f324ca12 /addons/mail/static
parent9896af94ebc887d98ccf44e6568ef7eeb5a27172 (diff)
[FIX] mail: fix text selection in composer using SHIFT and arrow keys
This commit corrects the faulty SHIFT + ArrowKey selection behavior. task-2388650 closes odoo/odoo#62059 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Diffstat (limited to 'addons/mail/static')
-rw-r--r--addons/mail/static/src/components/composer_text_input/composer_text_input.js6
-rw-r--r--addons/mail/static/src/models/composer/composer.js6
2 files changed, 10 insertions, 2 deletions
diff --git a/addons/mail/static/src/components/composer_text_input/composer_text_input.js b/addons/mail/static/src/components/composer_text_input/composer_text_input.js
index 5afb99c4990..38b6cf30014 100644
--- a/addons/mail/static/src/components/composer_text_input/composer_text_input.js
+++ b/addons/mail/static/src/components/composer_text_input/composer_text_input.js
@@ -87,8 +87,9 @@ class ComposerTextInput extends Component {
saveStateInStore() {
this.composer.update({
textInputContent: this._getContent(),
- textInputCursorStart: this._getSelectionStart(),
textInputCursorEnd: this._getSelectionEnd(),
+ textInputCursorStart: this._getSelectionStart(),
+ textInputSelectionDirection: this._textareaRef.el.selectionDirection,
});
}
@@ -149,7 +150,8 @@ class ComposerTextInput extends Component {
this._textareaRef.el.value = this.composer.textInputContent;
this._textareaRef.el.setSelectionRange(
this.composer.textInputCursorStart,
- this.composer.textInputCursorEnd
+ this.composer.textInputCursorEnd,
+ this.composer.textInputSelectionDirection,
);
this._updateHeight();
}
diff --git a/addons/mail/static/src/models/composer/composer.js b/addons/mail/static/src/models/composer/composer.js
index 2e087a1bb72..49ed975d70e 100644
--- a/addons/mail/static/src/models/composer/composer.js
+++ b/addons/mail/static/src/models/composer/composer.js
@@ -45,6 +45,9 @@ function factory(dependencies) {
}
detectSuggestionDelimiter() {
+ if (this.textInputCursorStart !== this.textInputCursorEnd) {
+ return;
+ }
const lastInputChar = this.textInputContent.substring(this.textInputCursorStart - 1, this.textInputCursorStart);
const suggestionDelimiters = ['@', ':', '#', '/'];
if (suggestionDelimiters.includes(lastInputChar) && !this.hasSuggestions) {
@@ -1043,6 +1046,9 @@ function factory(dependencies) {
textInputCursorStart: attr({
default: 0,
}),
+ textInputSelectionDirection: attr({
+ default: "none",
+ }),
thread: one2one('mail.thread', {
inverse: 'composer',
}),