FlatInspector: add/remove mouse listener in setEnabled

This commit is contained in:
Max Weber
2022-10-29 05:16:29 -06:00
parent b56acd271f
commit 15f08e9b7c

View File

@@ -155,7 +155,7 @@ public class FlatInspector
rootPane.putClientProperty( FlatInspector.class, inspector ); rootPane.putClientProperty( FlatInspector.class, inspector );
inspector.setEnabled( true ); inspector.setEnabled( true );
} else { } else {
inspector.uninstall(); inspector.setEnabled( false );
rootPane.putClientProperty( FlatInspector.class, null ); rootPane.putClientProperty( FlatInspector.class, null );
} }
} }
@@ -175,8 +175,6 @@ public class FlatInspector
} }
}; };
rootPane.getGlassPane().addMouseMotionListener( mouseMotionListener );
keyListener = e -> { keyListener = e -> {
KeyEvent keyEvent = (KeyEvent) e; KeyEvent keyEvent = (KeyEvent) e;
int keyCode = keyEvent.getKeyCode(); int keyCode = keyEvent.getKeyCode();
@@ -220,12 +218,10 @@ public class FlatInspector
keyEvent.consume(); keyEvent.consume();
if( id == KeyEvent.KEY_PRESSED ) { if( id == KeyEvent.KEY_PRESSED ) {
setEnabled( false );
FlatInspector inspector = (FlatInspector) rootPane.getClientProperty( FlatInspector.class ); FlatInspector inspector = (FlatInspector) rootPane.getClientProperty( FlatInspector.class );
if( inspector == FlatInspector.this ) { if( inspector == FlatInspector.this )
uninstall();
rootPane.putClientProperty( FlatInspector.class, null ); 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 ) { public void addPropertyChangeListener( PropertyChangeListener l ) {
propertyChangeSupport.addPropertyChangeListener( l ); propertyChangeSupport.addPropertyChangeListener( l );
@@ -280,6 +270,12 @@ public class FlatInspector
else else
toolkit.removeAWTEventListener( keyListener ); toolkit.removeAWTEventListener( keyListener );
// add/remove mouse listener
if( enabled )
rootPane.getGlassPane().addMouseMotionListener( mouseMotionListener );
else
rootPane.getGlassPane().removeMouseMotionListener( mouseMotionListener );
// add/remove window listener // add/remove window listener
if( enabled ) { if( enabled ) {
window = SwingUtilities.windowForComponent( rootPane ); window = SwingUtilities.windowForComponent( rootPane );