Author: tilman
Date: Tue Aug 25 12:52:08 2026
New Revision: 1937426

Log:
PDFBOX-6240: add screen-bound popup positioning, as suggested by copilot

Modified:
   
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java

Modified: 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
==============================================================================
--- 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
        Tue Aug 25 12:52:04 2026        (r1937425)
+++ 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
        Tue Aug 25 12:52:08 2026        (r1937426)
@@ -21,9 +21,11 @@ import java.awt.Color;
 import java.awt.Component;
 import java.awt.Cursor;
 import java.awt.Desktop;
+import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.GraphicsEnvironment;
 import java.awt.Point;
+import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.MouseEvent;
@@ -483,7 +485,15 @@ public class PagePane implements ActionL
         hoverWindow.pack();
 
         Point screen = e.getLocationOnScreen();
-        hoverWindow.setLocation(screen.x + 12, screen.y + 12);
+        Dimension size = hoverWindow.getSize();
+        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+
+        int x = Math.min(screen.x + 12, screenSize.width - size.width);
+        int y = Math.min(screen.y + 12, screenSize.height - size.height);
+        x = Math.max(0, x);
+        y = Math.max(0, y);
+
+        hoverWindow.setLocation(x, y);
         if (!hoverWindow.isVisible())
         {
             hoverWindow.setVisible(true);

Reply via email to