diff --git a/code/mindolph-base/src/main/java/com/mindolph/base/control/ExtCodeArea.java b/code/mindolph-base/src/main/java/com/mindolph/base/control/ExtCodeArea.java index ce5ab5a6..fb0160ca 100644 --- a/code/mindolph-base/src/main/java/com/mindolph/base/control/ExtCodeArea.java +++ b/code/mindolph-base/src/main/java/com/mindolph/base/control/ExtCodeArea.java @@ -141,6 +141,7 @@ private void bindInputHelperContextMenu() { if (!StringUtils.equals(oldValue, newValue)) inputHelpSource.push(newValue); }); + // stop helping when paragraph is changed by like mouse click. this.currentParagraphProperty().addListener((observable, oldValue, newValue) -> { inputHelperManager.consume(InputHelperManager.UNKNOWN_INPUT, null); }); @@ -160,7 +161,10 @@ private void bindInputHelperContextMenu() { }); inputHelperManager.onSelected((selection) -> { - this.insertText(this.getCaretPosition(), StringUtils.substringAfter(selection.selected(), selection.input())); + if (StringUtils.startsWithIgnoreCase(selection.selected(), selection.input())) { + int start = selection.input().length(); + this.insertText(this.getCaretPosition(), StringUtils.substring(selection.selected(), start)); + } }); this.setOnKeyReleased(event -> { if (!isInputMethod) {