Putting balloon strictly over icon gutter icon.
This commit is contained in:
@@ -17,20 +17,22 @@
|
|||||||
package org.jetbrains.jet.plugin.codeInsight;
|
package org.jetbrains.jet.plugin.codeInsight;
|
||||||
|
|
||||||
import com.intellij.codeInsight.ExternalAnnotationsManager;
|
import com.intellij.codeInsight.ExternalAnnotationsManager;
|
||||||
|
import com.intellij.ide.DataManager;
|
||||||
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
|
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||||
import com.intellij.openapi.application.Result;
|
import com.intellij.openapi.application.Result;
|
||||||
import com.intellij.openapi.command.WriteCommandAction;
|
import com.intellij.openapi.command.WriteCommandAction;
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.*;
|
||||||
import com.intellij.openapi.editor.Editor;
|
|
||||||
import com.intellij.openapi.editor.EditorFactory;
|
|
||||||
import com.intellij.openapi.editor.EditorSettings;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.ui.popup.*;
|
import com.intellij.openapi.ui.popup.*;
|
||||||
import com.intellij.openapi.wm.IdeFocusManager;
|
import com.intellij.openapi.wm.IdeFocusManager;
|
||||||
import com.intellij.psi.JavaPsiFacade;
|
import com.intellij.psi.JavaPsiFacade;
|
||||||
|
import com.intellij.psi.PsiDocumentManager;
|
||||||
import com.intellij.psi.PsiMethod;
|
import com.intellij.psi.PsiMethod;
|
||||||
import com.intellij.psi.PsiNameValuePair;
|
import com.intellij.psi.PsiNameValuePair;
|
||||||
import com.intellij.ui.awt.RelativePoint;
|
import com.intellij.ui.awt.RelativePoint;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.plugin.JetFileType;
|
import org.jetbrains.jet.plugin.JetFileType;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@@ -108,8 +110,23 @@ class EditSignatureBalloon {
|
|||||||
return editor;
|
return editor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getLineY(@Nullable DataContext dataContext) {
|
||||||
|
if (dataContext != null) {
|
||||||
|
Editor mainEditor = PlatformDataKeys.EDITOR.getData(dataContext);
|
||||||
|
Document document = PsiDocumentManager.getInstance(method.getProject()).getDocument(method.getContainingFile());
|
||||||
|
if (mainEditor != null && document != null) {
|
||||||
|
int lineNumber = document.getLineNumber(method.getTextOffset());
|
||||||
|
return mainEditor.logicalPositionToXY(new LogicalPosition(lineNumber, 0)).y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Integer.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
public void show(MouseEvent e) {
|
public void show(MouseEvent e) {
|
||||||
balloon.show(new RelativePoint(e), Balloon.Position.above);
|
Point eventPoint = e.getPoint();
|
||||||
|
int lineY = getLineY(DataManager.getInstance().getDataContext(e.getComponent()));
|
||||||
|
Point point = new Point(eventPoint.x, Math.min(lineY, eventPoint.y));
|
||||||
|
balloon.show(new RelativePoint(e.getComponent(), point), Balloon.Position.above);
|
||||||
IdeFocusManager.getInstance(editor.getProject()).requestFocus(editor.getContentComponent(), false);
|
IdeFocusManager.getInstance(editor.getProject()).requestFocus(editor.getContentComponent(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user