@@ -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