From 15f08e9b7c9db6a6104a7297c7de51a38b888c63 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sat, 29 Oct 2022 05:16:29 -0600 Subject: [PATCH] FlatInspector: add/remove mouse listener in setEnabled --- .../formdev/flatlaf/extras/FlatInspector.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatInspector.java b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatInspector.java index a2fad3ae..3b2142ed 100644 --- a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatInspector.java +++ b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatInspector.java @@ -155,7 +155,7 @@ public class FlatInspector rootPane.putClientProperty( FlatInspector.class, inspector ); inspector.setEnabled( true ); } else { - inspector.uninstall(); + inspector.setEnabled( false ); rootPane.putClientProperty( FlatInspector.class, null ); } } @@ -175,8 +175,6 @@ public class FlatInspector } }; - rootPane.getGlassPane().addMouseMotionListener( mouseMotionListener ); - keyListener = e -> { KeyEvent keyEvent = (KeyEvent) e; int keyCode = keyEvent.getKeyCode(); @@ -220,12 +218,10 @@ public class FlatInspector keyEvent.consume(); if( id == KeyEvent.KEY_PRESSED ) { + setEnabled( false ); FlatInspector inspector = (FlatInspector) rootPane.getClientProperty( FlatInspector.class ); - if( inspector == FlatInspector.this ) { - uninstall(); + if( inspector == FlatInspector.this ) rootPane.putClientProperty( FlatInspector.class, null ); - } else - setEnabled( false ); } } }; @@ -243,12 +239,6 @@ public class FlatInspector }; } - private void uninstall() { - setEnabled( false ); - rootPane.getGlassPane().setVisible( false ); - rootPane.getGlassPane().removeMouseMotionListener( mouseMotionListener ); - } - public void addPropertyChangeListener( PropertyChangeListener l ) { propertyChangeSupport.addPropertyChangeListener( l ); @@ -280,6 +270,12 @@ public class FlatInspector else toolkit.removeAWTEventListener( keyListener ); + // add/remove mouse listener + if( enabled ) + rootPane.getGlassPane().addMouseMotionListener( mouseMotionListener ); + else + rootPane.getGlassPane().removeMouseMotionListener( mouseMotionListener ); + // add/remove window listener if( enabled ) { window = SwingUtilities.windowForComponent( rootPane );