mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-63443 Formatter: Improve formatter performance during operations that require big number of small changes
Disposing connection used for bulk document update listening if necessary
This commit is contained in:
@@ -69,6 +69,7 @@ import com.intellij.util.Alarm;
|
||||
import com.intellij.util.IJSwingUtilities;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import com.intellij.util.text.CharArrayUtil;
|
||||
import com.intellij.util.ui.ButtonlessScrollBarUI;
|
||||
import com.intellij.util.ui.EmptyClipboardOwner;
|
||||
@@ -173,6 +174,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
private final SoftWrapModelImpl mySoftWrapModel;
|
||||
|
||||
private static final RepaintCursorCommand ourCaretBlinkingCommand;
|
||||
private MessageBusConnection myConnection;
|
||||
|
||||
private int myMouseSelectionState = MOUSE_SELECTION_STATE_NONE;
|
||||
private FoldRegion myMouseSelectedRegion = null;
|
||||
@@ -273,7 +275,8 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
|
||||
myEditorDocumentAdapter = new EditorDocumentAdapter();
|
||||
if (project != null) {
|
||||
project.getMessageBus().connect().subscribe(DocumentBulkUpdateListener.TOPIC, new EditorDocumentBulkUpdateAdapter());
|
||||
myConnection = project.getMessageBus().connect();
|
||||
myConnection.subscribe(DocumentBulkUpdateListener.TOPIC, new EditorDocumentBulkUpdateAdapter());
|
||||
}
|
||||
myMouseMotionListeners = ContainerUtil.createEmptyCOWList();
|
||||
|
||||
@@ -603,6 +606,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
clearCaretThread();
|
||||
|
||||
myFocusListeners.clear();
|
||||
|
||||
if (myConnection != null) {
|
||||
myConnection.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
private void clearCaretThread() {
|
||||
|
||||
Reference in New Issue
Block a user