diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/DragHelper.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/DragHelper.java index 523683496154..7bc367c7e958 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/DragHelper.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/DragHelper.java @@ -93,7 +93,7 @@ class DragHelper extends MouseDragHelper { } protected void processDrag(MouseEvent event, Point targetScreenPoint, Point startPointScreen) { - if (!myTabs.isTabDraggingEnabled()) return; + if (!myTabs.isTabDraggingEnabled() || !isDragSource(event)) return; SwingUtilities.convertPointFromScreen(startPointScreen, myTabs); @@ -165,6 +165,14 @@ class DragHelper extends MouseDragHelper { } } + private boolean isDragSource(MouseEvent event) { + final Object source = event.getSource(); + if (source instanceof Component) { + return SwingUtilities.windowForComponent(myTabs) == SwingUtilities.windowForComponent((Component)source); + } + return false; + } + private TabLabel findMostOverlapping(Axis measurer, TabLabel... labels) { double freeSpace;