mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-08 06:50:56 +03:00
UI inspector:
- fixed wrong detection of components under mouse location if window contains a menubar - fixed positioning of tooltip in bottom and right window area to avoid that the tooltip overlaps the inspected component
This commit is contained in:
@@ -27,6 +27,7 @@ import java.awt.Graphics;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.KeyboardFocusManager;
|
import java.awt.KeyboardFocusManager;
|
||||||
|
import java.awt.Point;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.Toolkit;
|
import java.awt.Toolkit;
|
||||||
import java.awt.Window;
|
import java.awt.Window;
|
||||||
@@ -154,7 +155,8 @@ public class FlatInspector
|
|||||||
|
|
||||||
private void inspect( int x, int y ) {
|
private void inspect( int x, int y ) {
|
||||||
Container contentPane = rootPane.getContentPane();
|
Container contentPane = rootPane.getContentPane();
|
||||||
Component c = SwingUtilities.getDeepestComponentAt( contentPane, x, y );
|
Point pt = SwingUtilities.convertPoint( rootPane.getGlassPane(), x, y, contentPane );
|
||||||
|
Component c = SwingUtilities.getDeepestComponentAt( contentPane, pt.x, pt.y );
|
||||||
if( inspectParent && c != null && c != contentPane )
|
if( inspectParent && c != null && c != contentPane )
|
||||||
c = c.getParent();
|
c = c.getParent();
|
||||||
if( c == contentPane || (c != null && c.getParent() == contentPane) )
|
if( c == contentPane || (c != null && c.getParent() == contentPane) )
|
||||||
@@ -230,9 +232,9 @@ public class FlatInspector
|
|||||||
// position the tip in the visible area
|
// position the tip in the visible area
|
||||||
Rectangle visibleRect = rootPane.getVisibleRect();
|
Rectangle visibleRect = rootPane.getVisibleRect();
|
||||||
if( tx + size.width > visibleRect.x + visibleRect.width )
|
if( tx + size.width > visibleRect.x + visibleRect.width )
|
||||||
tx = visibleRect.x + visibleRect.width - size.width;
|
tx -= size.width + UIScale.scale( 16 );
|
||||||
if( ty + size.height > visibleRect.y + visibleRect.height )
|
if( ty + size.height > visibleRect.y + visibleRect.height )
|
||||||
ty = visibleRect.y + visibleRect.height - size.height;
|
ty -= size.height + UIScale.scale( 32 );
|
||||||
if( tx < visibleRect.x )
|
if( tx < visibleRect.x )
|
||||||
tx = visibleRect.x;
|
tx = visibleRect.x;
|
||||||
if( ty < visibleRect.y )
|
if( ty < visibleRect.y )
|
||||||
|
|||||||
Reference in New Issue
Block a user