From ea208965d51c227044fe4c6b30e42c70a5544a49 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Wed, 5 Sep 2012 21:40:07 +0400 Subject: [PATCH] Fixed focus requesting in signature balloon --- .../ktSignature/EditSignatureBalloon.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/ktSignature/EditSignatureBalloon.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/ktSignature/EditSignatureBalloon.java index 1e57288c042..0cc475d8972 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/ktSignature/EditSignatureBalloon.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/ktSignature/EditSignatureBalloon.java @@ -18,6 +18,7 @@ package org.jetbrains.jet.plugin.codeInsight.ktSignature; import com.intellij.codeInsight.ExternalAnnotationsManager; import com.intellij.openapi.Disposable; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.*; @@ -144,9 +145,9 @@ class EditSignatureBalloon implements Disposable { return editor.logicalPositionToXY(logicalPosition).y; } - public void show(@Nullable Point point, @NotNull Editor editor, @NotNull PsiElement psiElementInEditor) { - int lineY = getLineY(editor, psiElementInEditor); - EditorGutterComponentEx gutter = (EditorGutterComponentEx) editor.getGutter(); + public void show(@Nullable Point point, @NotNull final Editor mainEditor, @NotNull PsiElement psiElementInEditor) { + int lineY = getLineY(mainEditor, psiElementInEditor); + EditorGutterComponentEx gutter = (EditorGutterComponentEx) mainEditor.getGutter(); Point adjustedPoint; if (point == null) { adjustedPoint = new Point(gutter.getIconsAreaWidth() + gutter.getLineMarkerAreaOffset(), lineY); @@ -155,7 +156,12 @@ class EditSignatureBalloon implements Disposable { adjustedPoint = new Point(point.x, Math.min(lineY, point.y)); } balloon.show(new RelativePoint(gutter, adjustedPoint), Balloon.Position.above); - IdeFocusManager.getInstance(editor.getProject()).requestFocus(editor.getContentComponent(), false); + ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override + public void run() { + IdeFocusManager.getInstance(mainEditor.getProject()).requestFocus(editor.getContentComponent(), false); + } + }); } @Override