Skip to content

Commit a5bef57

Browse files
committed
better suggestion position
1 parent 4b71dd3 commit a5bef57

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

addon/editor.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ export class Editor extends React.Component {
9393
}
9494
editorAutocompleteEvent(e) {
9595
let {model} = this.props;
96+
if (e.type == "select" && !model.displaySuggestion) {
97+
return;
98+
}
9699
model.editorAutocompleteHandler(e);
97100
model.didUpdate();
98101
}
@@ -269,7 +272,7 @@ export class Editor extends React.Component {
269272
model.displaySuggestion = true;
270273
}
271274
}
272-
handleMouseUp(e) {
275+
handleMouseUp() {
273276
let {model} = this.props;
274277
if (!model.displaySuggestion) {
275278
model.activeSuggestion = -1;
@@ -296,11 +299,16 @@ export class Editor extends React.Component {
296299
let caretEle = model.editorMirror.getElementsByClassName("editor_caret")[0];
297300
if (caretEle) {
298301
const rect = caretEle.getBoundingClientRect();
302+
let threshold = 200;
303+
if (model.autocompleteResultBox) {
304+
const autocompleteResultBoxRect = model.autocompleteResultBox.getBoundingClientRect();
305+
threshold = autocompleteResultBoxRect.width;
306+
}
299307
const textareaRect = model.editor.getBoundingClientRect();
300308
let suggestionLeft = rect.left;
301309
// If caret's right edge is too close to the left of textarea, position suggestion to the left of caret
302-
if (rect.left + 200 > textareaRect.right) {
303-
suggestionLeft = textareaRect.right - 200;
310+
if (rect.left + threshold > textareaRect.right) {
311+
suggestionLeft = rect.left - threshold;
304312
}
305313
model.setSuggestionPosition(rect.top + rect.height, suggestionLeft);
306314
} else {

0 commit comments

Comments
 (0)