From 04355fa04fb77fcf2248722dcf958ff91ca0e7b0 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 18 May 2016 15:20:34 +0200 Subject: [PATCH] IdeKeyEventDispatcher: perform action inside a user activity (EA-82426 - assert: TransactionGuardImpl.submitTransactionAndWait) --- .../openapi/keymap/impl/IdeKeyEventDispatcher.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java index 50fc4e9e47cb..5c61d7854bef 100644 --- a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java +++ b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java @@ -23,10 +23,7 @@ import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.ActionManagerEx; import com.intellij.openapi.actionSystem.ex.ActionUtil; import com.intellij.openapi.actionSystem.impl.PresentationFactory; -import com.intellij.openapi.application.Application; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.application.ModalityState; -import com.intellij.openapi.application.TransactionGuard; +import com.intellij.openapi.application.*; import com.intellij.openapi.keymap.KeyMapBundle; import com.intellij.openapi.keymap.Keymap; import com.intellij.openapi.keymap.KeymapManager; @@ -60,7 +57,6 @@ import com.intellij.ui.components.JBOptionButton; import com.intellij.ui.popup.list.ListPopupImpl; import com.intellij.ui.speedSearch.SpeedSearchSupply; import com.intellij.util.Alarm; -import com.intellij.util.Processor; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.KeyboardLayoutUtil; import com.intellij.util.ui.MacUIUtil; @@ -634,7 +630,8 @@ public final class IdeKeyEventDispatcher implements Disposable { return true; } - processor.performAction(e, action, actionEvent); + ((TransactionGuardImpl)TransactionGuard.getInstance()).performUserActivity( + () -> processor.performAction(e, action, actionEvent)); actionManager.fireAfterActionPerformed(action, actionEvent.getDataContext(), actionEvent); return true; }