From b486c2c581288dc571af40ba9714440133d58978 Mon Sep 17 00:00:00 2001 From: zaaarf Date: Mon, 16 Sep 2024 23:32:46 +0200 Subject: [PATCH] fix: others people cursors are now visible --- .../listeners/CursorEventListener.java | 2 +- .../code/intellij/util/InteractionUtil.java | 26 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/mp/code/intellij/listeners/CursorEventListener.java b/src/main/java/mp/code/intellij/listeners/CursorEventListener.java index 63b7572..0b0a431 100644 --- a/src/main/java/mp/code/intellij/listeners/CursorEventListener.java +++ b/src/main/java/mp/code/intellij/listeners/CursorEventListener.java @@ -36,7 +36,7 @@ public class CursorEventListener implements CaretListener { startPos.line, startPos.column, endPos.line, endPos.column ); - new Thread(() -> { // kys + new Thread(() -> { ApplicationManager.getApplication().runReadAction(() -> { Editor editor = event.getEditor(); try { diff --git a/src/main/java/mp/code/intellij/util/InteractionUtil.java b/src/main/java/mp/code/intellij/util/InteractionUtil.java index b30d555..2ea9d3e 100644 --- a/src/main/java/mp/code/intellij/util/InteractionUtil.java +++ b/src/main/java/mp/code/intellij/util/InteractionUtil.java @@ -108,7 +108,7 @@ public class InteractionUtil { eventMulticaster.addCaretListener(new CursorEventListener()); // TODO disposable CodeMP.getActiveWorkspace().getCursor().callback(controller -> { - ApplicationManager.getApplication().invokeLater(() -> { + new Thread(() -> { try { while(true) { Optional c = controller.tryRecv(); @@ -118,20 +118,20 @@ public class InteractionUtil { CodeMP.LOGGER.debug( "Cursor moved by user {}! Start pos: {}x {}y; end pos: {}x {}y in buffer {}!", event.user, - event.startCol, event.startRow, - event.endCol, event.endRow, + event.startCol, + event.startRow, + event.endCol, + event.endRow, event.buffer ); try { - ApplicationManager.getApplication().invokeLater(() -> { + ApplicationManager.getApplication().runReadAction(() -> { Editor editor = FileUtil.getActiveEditorByPath(this.myProject, event.buffer); if(editor == null) return; - int startOffset = editor.getDocument() - .getLineStartOffset(event.startRow) + event.startCol; - int endOffset = editor.getDocument() - .getLineStartOffset(event.startRow) + event.startCol; + int startOffset = editor.getDocument().getLineStartOffset(event.startRow) + event.startCol; + int endOffset = editor.getDocument().getLineStartOffset(event.endRow) + event.endCol; int documentLength = editor.getDocument().getTextLength(); if(startOffset > documentLength || endOffset > documentLength) { @@ -153,19 +153,19 @@ public class InteractionUtil { null, null, Font.PLAIN - ), HighlighterTargetArea.EXACT_RANGE + ), + HighlighterTargetArea.EXACT_RANGE ) ); - if(previous != null) - previous.dispose(); + if(previous != null) previous.dispose(); }); - } catch(IndexOutOfBoundsException ignored) {} + } catch(IndexOutOfBoundsException ignored) {} // don't crash over a bad cursor event } } catch(ControllerException ex) { notifyError(project, "Error receiving change", ex); } - }); + }).start(); }); if(after != null) after.run();