diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java index ee78776c0ce..969c381388f 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java @@ -62,6 +62,7 @@ public class ImageView extends ItemView { private Point hoverScrollPos; private ItemInfo hoveredItem; private ItemInfo focalItem; + private InventoryItem lastAltCard = null; private boolean panelOptionsCreated = false; private final List orderedItems = new ArrayList<>(); @@ -1109,9 +1110,19 @@ public class ImageView extends ItemView { InventoryItem item = itemInfo.item; itemInfo.alt = false; if (!FModel.getPreferences().getPref(FPref.UI_SWITCH_STATES_DECKVIEW).equals(ForgeConstants.SWITCH_CARDSTATES_DECK_NEVER)) { - if (hoveredItem != null && hoveredItem.item.equals(item)) { - if (item instanceof PaperCard && ((PaperCard)item).hasBackFace()) - itemInfo.alt = true; + if ((hoveredItem == null || !hoveredItem.item.equals(item)) || (FModel.getPreferences().getPref(FPref.UI_SWITCH_STATES_DECKVIEW).equals(ForgeConstants.SWITCH_CARDSTATES_DECK_ALWAYS))) { + if (item instanceof PaperCard) { + if (((PaperCard)item).hasBackFace()) { + if (item.equals(lastAltCard)) { + itemInfo.alt = true; + lastAltCard = null; + } else { + lastAltCard = item; + } + } else { + lastAltCard = null; + } + } } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java index fb49c525b1d..8870bbb5e2d 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java @@ -573,7 +573,7 @@ public enum CSubmenuPreferences implements ICDoc { } private void initializeSwitchStatesCombobox() { - final String[] elems = {ForgeConstants.SWITCH_CARDSTATES_DECK_NEVER, ForgeConstants.SWITCH_CARDSTATES_DECK_HOVER}; + final String[] elems = {ForgeConstants.SWITCH_CARDSTATES_DECK_NEVER, ForgeConstants.SWITCH_CARDSTATES_DECK_HOVER, ForgeConstants.SWITCH_CARDSTATES_DECK_ALWAYS}; final FPref userSetting = FPref.UI_SWITCH_STATES_DECKVIEW; final FComboBoxPanel panel = this.view.getSwitchStates(); final FComboBox comboBox = createComboBox(elems, userSetting); diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java index d23cb2c7f40..8129588a7bd 100644 --- a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java +++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java @@ -465,8 +465,8 @@ public final class ForgeConstants { public static final String LAND_PLAYED_NOTIFICATION_AI = "Lands entering a battlefield because of an action of a AI player"; public static final String LAND_PLAYED_NOTIFICATION_AI_FOR_NONBASIC_LANDS = "Nonbasic lands entering a battlefield because of an action of a AI player"; - // Constants for Land played notification policy public static final String SWITCH_CARDSTATES_DECK_NEVER = "Never"; + public static final String SWITCH_CARDSTATES_DECK_ALWAYS = "Always"; public static final String SWITCH_CARDSTATES_DECK_HOVER = "Switch back on hover"; // Set boolean constant for landscape mode for gdx port