- Less demanding layouting notification for the targeting overlay when removing a card panel

This commit is contained in:
Agetian
2017-01-15 14:17:29 +00:00
parent b5258e9789
commit 084b4ef8d2

View File

@@ -35,7 +35,6 @@ import forge.screens.match.CMatchUI;
import forge.toolbox.FScrollPane; import forge.toolbox.FScrollPane;
import forge.toolbox.FSkin.SkinnedPanel; import forge.toolbox.FSkin.SkinnedPanel;
import forge.toolbox.special.CardZoomer; import forge.toolbox.special.CardZoomer;
import forge.view.FView;
import forge.view.arcane.util.CardPanelMouseListener; import forge.view.arcane.util.CardPanelMouseListener;
/** /**
@@ -298,7 +297,7 @@ public abstract class CardPanelContainer extends SkinnedPanel {
remove(fromPanel); remove(fromPanel);
invalidate(); invalidate();
repaint(); repaint();
FView.SINGLETON_INSTANCE.getFrame().repaint(); // necessary to get rid of lingering visual artifacts (e.g. unneeded targeting arrows) doingLayout();
} }
public final void setCardPanels(final List<CardPanel> cardPanels) { public final void setCardPanels(final List<CardPanel> cardPanels) {
@@ -425,6 +424,10 @@ public abstract class CardPanelContainer extends SkinnedPanel {
@Override @Override
public void doLayout() { public void doLayout() {
doingLayout();
}
private void doingLayout() {
// Inform listeners we're doing layout // Inform listeners we're doing layout
for (LayoutEventListener listener : layoutListeners) { for (LayoutEventListener listener : layoutListeners) {
listener.doingLayout(); listener.doingLayout();