From fad4ca9d2935c81128a06ebc25b355de04f86a60 Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Sat, 17 Aug 2024 19:45:20 -0400 Subject: [PATCH] Test --- .../src/ModernDocking/floating/FloatListener.java | 3 +++ .../src/ModernDocking/floating/FloatUtilsFrame.java | 9 +++++---- .../src/ModernDocking/floating/Floating.java | 13 +++++++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/docking-api/src/ModernDocking/floating/FloatListener.java b/docking-api/src/ModernDocking/floating/FloatListener.java index 526f60c..aaa74ef 100644 --- a/docking-api/src/ModernDocking/floating/FloatListener.java +++ b/docking-api/src/ModernDocking/floating/FloatListener.java @@ -142,6 +142,8 @@ private void dragStarted(Point dragOrigin) { if (currentRoot.isEmpty()) { originalWindow.setVisible(false); } + + Floating.startDrag(dragSource); } public void removeListeners() { @@ -196,6 +198,7 @@ public void dragDropEnd(DragSourceDropEvent event) { originalWindow.dispose(); } + Floating.endDrag(dragSource); Floating.setFloating(false); } diff --git a/docking-api/src/ModernDocking/floating/FloatUtilsFrame.java b/docking-api/src/ModernDocking/floating/FloatUtilsFrame.java index 834e4fd..0f05e15 100644 --- a/docking-api/src/ModernDocking/floating/FloatUtilsFrame.java +++ b/docking-api/src/ModernDocking/floating/FloatUtilsFrame.java @@ -92,7 +92,8 @@ public FloatUtilsFrame(DockingAPI docking, Window referenceDockingWindow, Intern GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(); BufferCapabilities bufferCapabilities = gc.getBufferCapabilities(); - if (bufferCapabilities.isMultiBufferAvailable()) { + if (bufferCapabilities.isMultiBufferAvailable()) + { add(renderPanel); renderPanel.setOpaque(false); } @@ -112,7 +113,7 @@ public void activate(FloatListener floatListener, JFrame floatingFrame, DragSour this.floatListener = floatListener; this.floatingFrame = floatingFrame; this.dragSource = dragSource; - dragSource.addDragSourceMotionListener(this); +// dragSource.addDragSourceMotionListener(this); mouseMoved(mousePosOnScreen); @@ -138,7 +139,7 @@ public void deactivate() { setVisible(false); if (dragSource != null) { - dragSource.removeDragSourceMotionListener(this); +// dragSource.removeDragSourceMotionListener(this); } floatListener = null; floatingFrame = null; @@ -324,7 +325,7 @@ public DockingRegion getDockableRegion(Dockable targetDockable, Dockable floatin } private void setSizeAndLocation() { - int padding = (int) (DockingHandle.HANDLE_ICON_SIZE * 1.75); + int padding = getExtendedState() == Frame.MAXIMIZED_BOTH ? 0 : (int) (DockingHandle.HANDLE_ICON_SIZE * 1.75); Point location = new Point(referenceDockingWindow.getLocationOnScreen()); Dimension size = new Dimension(referenceDockingWindow.getSize()); diff --git a/docking-api/src/ModernDocking/floating/Floating.java b/docking-api/src/ModernDocking/floating/Floating.java index bbbcfa5..204bc55 100644 --- a/docking-api/src/ModernDocking/floating/Floating.java +++ b/docking-api/src/ModernDocking/floating/Floating.java @@ -27,6 +27,7 @@ of this software and associated documentation files (the "Software"), to deal import javax.swing.*; import java.awt.*; +import java.awt.dnd.DragSource; import java.util.HashMap; import java.util.Map; @@ -58,4 +59,16 @@ static void setFloating(boolean floating) { static void setFloatingTabbedPane(boolean floating) { isFloatingTabbedPane = floating; } + + public static void startDrag(DragSource dragSource) { + for (FloatUtilsFrame frame : utilFrames.values()) { + dragSource.addDragSourceMotionListener(frame); + } + } + + public static void endDrag(DragSource dragSource) { + for (FloatUtilsFrame frame : utilFrames.values()) { + dragSource.removeDragSourceMotionListener(frame); + } + } } \ No newline at end of file