mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
GUI: fixed memory leak on gui-desktop
This commit is contained in:
@@ -134,6 +134,7 @@ import forge.util.gui.SOptionPane;
|
||||
import forge.view.FView;
|
||||
import forge.view.arcane.CardPanel;
|
||||
import forge.view.arcane.FloatingZone;
|
||||
import net.miginfocom.layout.LinkHandler;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
|
||||
/**
|
||||
@@ -1028,6 +1029,7 @@ public final class CMatchUI
|
||||
FThreads.invokeInEdtNowOrLater(new Runnable() {
|
||||
@Override public void run() {
|
||||
Singletons.getView().getNavigationBar().closeTab(screen);
|
||||
LinkHandler.clearWeakReferencesNow();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2214,7 +2214,7 @@ public class FSkin {
|
||||
}
|
||||
private static class SkinScrollBarUI extends BasicScrollBarUI implements ILocalRepaint {
|
||||
@SuppressWarnings("serial")
|
||||
private static JButton hiddenButton = new JButton() {
|
||||
private static class HiddenButton extends JButton {
|
||||
@Override
|
||||
public Dimension getPreferredSize() {
|
||||
return new Dimension(0, 0);
|
||||
@@ -2229,26 +2229,42 @@ public class FSkin {
|
||||
|
||||
private final boolean vertical;
|
||||
private boolean hovered;
|
||||
private MouseAdapter hoverListener;
|
||||
|
||||
private static class SkinScrollBarListener extends MouseAdapter {
|
||||
private SkinScrollBarUI barUI;
|
||||
|
||||
private SkinScrollBarListener(SkinScrollBarUI barUI) {
|
||||
this.barUI = barUI;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(final MouseEvent e) {
|
||||
barUI.hovered = true;
|
||||
barUI.repaintSelf();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(final MouseEvent e) {
|
||||
barUI.hovered = false;
|
||||
barUI.repaintSelf();
|
||||
}
|
||||
}
|
||||
|
||||
private SkinScrollBarUI(final JScrollBar scrollbar, final boolean vertical0) {
|
||||
vertical = vertical0;
|
||||
scrollbar.setOpaque(false);
|
||||
scrollbar.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseEntered(final MouseEvent e) {
|
||||
hovered = true;
|
||||
repaintSelf();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(final MouseEvent e) {
|
||||
hovered = false;
|
||||
repaintSelf();
|
||||
}
|
||||
});
|
||||
hoverListener = new SkinScrollBarListener(this);
|
||||
scrollbar.setOpaque(false);
|
||||
scrollbar.addMouseListener(hoverListener);
|
||||
scrollbar.setUI(this);
|
||||
}
|
||||
|
||||
protected void uninstallListeners() {
|
||||
super.uninstallListeners();
|
||||
scrollbar.removeMouseListener(hoverListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void repaintSelf() {
|
||||
final Dimension d = scrollbar.getSize();
|
||||
@@ -2257,12 +2273,12 @@ public class FSkin {
|
||||
|
||||
@Override
|
||||
protected JButton createIncreaseButton(final int orientation) {
|
||||
return hiddenButton; //hide increase button
|
||||
return new HiddenButton(); //hide increase button
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JButton createDecreaseButton(final int orientation) {
|
||||
return hiddenButton; //hide decrease button
|
||||
return new HiddenButton(); //hide decrease button
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user