Search code examples
intellij-ideaintellij-plugin

Add focus/blur listener in IntelliJ plugin


How can I listen for focus/blur events of all edtitors in an IntelliJ plugin?


Solution

  • Get EditorEventMulticasterEx using getEventMulticaster method, and then use its addFocusChangeListener method:

    Disposable disposable = () -> {};  // or your custom disposable
    
    EditorEventMulticasterEx editorEventMulticaster =
            (EditorEventMulticasterEx) EditorFactory.getInstance().getEventMulticaster();
    
    editorEventMulticaster.addFocusChangeListener(new FocusChangeListener() {
        @Override
        public void focusGained(@NotNull Editor editor) {
            // handle focus event
        }
    
        @Override
        public void focusLost(@NotNull Editor editor) {
            // handle blur event
        }
    }, disposable);