diff --git a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java index ca8a1c61af6..62f882a7a99 100644 --- a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java @@ -37,6 +37,7 @@ package mage.client.game; import java.awt.Component; import java.awt.Dimension; import java.awt.Rectangle; +import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.util.HashMap; @@ -68,12 +69,20 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane implements Compon private Map ui = new HashMap(); protected static DefaultActionCallback defaultCallback = DefaultActionCallback.getInstance(); - + protected static Map battlefield; + /** Creates new form BattlefieldPanel */ public BattlefieldPanel(JScrollPane jScrollPane) { ui.put("jScrollPane", jScrollPane); ui.put("battlefieldPanel", this); initComponents(); + + addComponentListener(new ComponentAdapter(){ + @Override + public void componentResized(ComponentEvent e) { + sortLayout(); + } + }); } public void init(UUID gameId, BigCard bigCard) { @@ -103,17 +112,23 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane implements Compon } if (changed) { - Plugins.getInstance().sortPermanents(ui, permanents.values()); - - for (PermanentView permanent: battlefield.values()) { - if (permanent.getAttachments() != null) { - groupAttachments(permanent); - } - } - - invalidate(); + BattlefieldPanel.battlefield = battlefield; + sortLayout(); } } + + public void sortLayout() { + Plugins.getInstance().sortPermanents(ui, permanents.values()); + if (battlefield == null) {return;} + + for (PermanentView permanent: battlefield.values()) { + if (permanent.getAttachments() != null) { + groupAttachments(permanent); + } + } + + invalidate(); + } private void addPermanent(PermanentView permanent) { MagePermanent perm = Plugins.getInstance().getMagePermanent(permanent, bigCard, Config.dimensions, gameId); diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index 5a3b051a9ae..3b5e4d736b6 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -35,6 +35,7 @@ package mage.client.game; import java.awt.BorderLayout; +import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; @@ -410,6 +411,7 @@ public class GamePanel extends javax.swing.JPanel { */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents + // //GEN-END:initComponents private void initComponents() { abilityPicker = new mage.client.game.AbilityPicker(); @@ -440,8 +442,9 @@ public class GamePanel extends javax.swing.JPanel { chatPanel = new mage.client.chat.ChatPanel(); jSplitPane1.setBorder(null); - jSplitPane1.setDividerSize(3); + jSplitPane1.setDividerSize(7); jSplitPane1.setResizeWeight(1.0); + jSplitPane1.setOneTouchExpandable(true); jSplitPane1.setMinimumSize(new java.awt.Dimension(26, 48)); pnlGameInfo.setBorder(javax.swing.BorderFactory.createEtchedBorder()); @@ -636,6 +639,7 @@ public class GamePanel extends javax.swing.JPanel { .addComponent(pnlGameInfo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); + jPanel3.setMinimumSize(new Dimension(1024, 768)); jSplitPane1.setLeftComponent(jPanel3); chatPanel.setMinimumSize(new java.awt.Dimension(100, 48)); @@ -651,7 +655,7 @@ public class GamePanel extends javax.swing.JPanel { layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 798, Short.MAX_VALUE) ); - }// //GEN-END:initComponents + } private void btnConcedeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConcedeActionPerformed if (modalQuestion("Are you sure you want to concede?", "Confirm concede") == JOptionPane.YES_OPTION) { diff --git a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java index 0d7974ba4c2..86e0b0314b8 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java +++ b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java @@ -160,6 +160,7 @@ public class MageActionCallback implements ActionCallback { @Override public void mouseExited(MouseEvent e) { + this.popupCard = null; if (popup != null) { popup.hide(); ArrowBuilder.removeAllArrows();