package com.intellij.xdebugger.impl.ui;
import com.intellij.codeInsight.hint.HintUtil;
+import com.intellij.openapi.Disposable;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.editor.Editor;
+import com.intellij.openapi.editor.EditorGutter;
import com.intellij.openapi.editor.LogicalPosition;
import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.editor.colors.EditorColorsUtil;
+import com.intellij.openapi.editor.ex.EditorGutterComponentEx;
import com.intellij.openapi.keymap.KeymapUtil;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.popup.*;
-import com.intellij.openapi.util.Computable;
-import com.intellij.openapi.util.DimensionService;
-import com.intellij.openapi.util.Getter;
-import com.intellij.openapi.util.Ref;
+import com.intellij.openapi.util.*;
import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.ui.AppUIUtil;
import javax.swing.*;
import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseEvent;
+import java.awt.event.*;
import java.util.concurrent.atomic.AtomicBoolean;
public class DebuggerUIUtil {
}
});
+ final ComponentAdapter moveListener = new ComponentAdapter() {
+ @Override
+ public void componentMoved(ComponentEvent e) {
+ balloon.hide();
+ }
+ };
+ component.addComponentListener(moveListener);
+ Disposer.register(balloon, new Disposable() {
+ @Override
+ public void dispose() {
+ component.removeComponentListener(moveListener);
+ }
+ });
+
if (whereToShow == null) {
balloon.showInCenterOf(component);
}