mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-13 23:37:13 -06:00
ScrollPane: fixed repainting on focus changes
This commit is contained in:
@@ -48,18 +48,14 @@ public class FlatScrollPaneUI
|
|||||||
protected void installListeners( JScrollPane c ) {
|
protected void installListeners( JScrollPane c ) {
|
||||||
super.installListeners( c );
|
super.installListeners( c );
|
||||||
|
|
||||||
JViewport viewport = scrollpane.getViewport();
|
addViewportListeners( scrollpane.getViewport() );
|
||||||
if( viewport != null )
|
|
||||||
viewport.addContainerListener( getHandler() );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void uninstallListeners( JComponent c ) {
|
protected void uninstallListeners( JComponent c ) {
|
||||||
super.uninstallListeners( c );
|
super.uninstallListeners( c );
|
||||||
|
|
||||||
JViewport viewport = scrollpane.getViewport();
|
removeViewportListeners( scrollpane.getViewport() );
|
||||||
if( viewport != null )
|
|
||||||
viewport.removeContainerListener( getHandler() );
|
|
||||||
|
|
||||||
handler = null;
|
handler = null;
|
||||||
}
|
}
|
||||||
@@ -77,20 +73,30 @@ public class FlatScrollPaneUI
|
|||||||
JViewport oldViewport = (JViewport) (e.getOldValue());
|
JViewport oldViewport = (JViewport) (e.getOldValue());
|
||||||
JViewport newViewport = (JViewport) (e.getNewValue());
|
JViewport newViewport = (JViewport) (e.getNewValue());
|
||||||
|
|
||||||
if( oldViewport != null ) {
|
removeViewportListeners( oldViewport );
|
||||||
oldViewport.removeContainerListener( getHandler() );
|
addViewportListeners( newViewport );
|
||||||
|
}
|
||||||
|
|
||||||
Component oldView = oldViewport.getView();
|
private void addViewportListeners( JViewport viewport ) {
|
||||||
if( oldView != null )
|
if( viewport == null )
|
||||||
oldView.removeFocusListener( getHandler() );
|
return;
|
||||||
}
|
|
||||||
if( newViewport != null ) {
|
|
||||||
newViewport.addContainerListener( getHandler() );
|
|
||||||
|
|
||||||
Component newView = newViewport.getView();
|
viewport.addContainerListener( getHandler() );
|
||||||
if( newView != null )
|
|
||||||
newView.addFocusListener( getHandler() );
|
Component view = viewport.getView();
|
||||||
}
|
if( view != null )
|
||||||
|
view.addFocusListener( getHandler() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeViewportListeners( JViewport viewport ) {
|
||||||
|
if( viewport == null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
viewport.removeContainerListener( getHandler() );
|
||||||
|
|
||||||
|
Component view = viewport.getView();
|
||||||
|
if( view != null )
|
||||||
|
view.removeFocusListener( getHandler() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user