From 2f6da3e84ae91ec6a4e9f726abf6d27c9f8aa555 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 15 Jan 2020 18:13:43 +0100 Subject: [PATCH] FlatInspector: improved inspecting parent levels: `Ctrl` adds 1 level, `Shift` adds 2 levels and `Alt` adds 4 levels; no longer limit inspecting to content pane --- .../com/formdev/flatlaf/testing/FlatInspector.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatInspector.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatInspector.java index c197d5e3..9bd3b9b8 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatInspector.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatInspector.java @@ -71,7 +71,7 @@ public class FlatInspector private Component lastComponent; private int lastX; private int lastY; - private boolean inspectParent; + private int inspectParentLevel; private JComponent highlightFigure; private JToolTip tip; @@ -112,7 +112,9 @@ public class FlatInspector public void mouseMoved( MouseEvent e ) { lastX = e.getX(); lastY = e.getY(); - inspectParent = e.isShiftDown(); + inspectParentLevel = (e.isControlDown() ? 1 : 0) + + (e.isShiftDown() ? 2 : 0) + + (e.isAltDown() ? 4 : 0); inspect( lastX, lastY ); } }; @@ -157,10 +159,9 @@ public class FlatInspector Container contentPane = rootPane.getContentPane(); Point pt = SwingUtilities.convertPoint( rootPane.getGlassPane(), x, y, contentPane ); Component c = SwingUtilities.getDeepestComponentAt( contentPane, pt.x, pt.y ); - if( inspectParent && c != null && c != contentPane ) + for( int i = 0; i < inspectParentLevel && c != null; i++ ) { c = c.getParent(); - if( c == contentPane || (c != null && c.getParent() == contentPane) ) - c = null; + } if( c == lastComponent ) return; @@ -300,6 +301,9 @@ public class FlatInspector text += "Left-to-right: " + c.getComponentOrientation().isLeftToRight() + '\n'; text += "Parent: " + c.getParent().getClass().getName(); + if( inspectParentLevel > 0 ) + text += "\n\nParent level: " + inspectParentLevel; + return text; }