aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client')
-rw-r--r--Minecraft.Client/Minecraft.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp
index 46e8497a..599a14f2 100644
--- a/Minecraft.Client/Minecraft.cpp
+++ b/Minecraft.Client/Minecraft.cpp
@@ -1,5 +1,6 @@
#include "stdafx.h"
#include "Minecraft.h"
+#include "Common/UI/UIScene.h"
#include "GameMode.h"
#include "Timer.h"
#include "ProgressRenderer.h"
@@ -1479,9 +1480,22 @@ void Minecraft::run_middle()
if(g_KBMInput.IsMouseButtonPressed(KeyboardMouseInput::MOUSE_RIGHT))
localplayers[i]->ullButtonsPressed|=1LL<<MINECRAFT_ACTION_USE;
+ bool isClosableByEitherKey = ui.IsSceneInStack(i, eUIScene_FurnaceMenu) ||
+ ui.IsSceneInStack(i, eUIScene_ContainerMenu) ||
+ ui.IsSceneInStack(i, eUIScene_DispenserMenu) ||
+ ui.IsSceneInStack(i, eUIScene_EnchantingMenu) ||
+ ui.IsSceneInStack(i, eUIScene_BrewingStandMenu) ||
+ ui.IsSceneInStack(i, eUIScene_TradingMenu) ||
+ ui.IsSceneInStack(i, eUIScene_AnvilMenu) ||
+ ui.IsSceneInStack(i, eUIScene_HopperMenu) ||
+ ui.IsSceneInStack(i, eUIScene_BeaconMenu) ||
+ ui.IsSceneInStack(i, eUIScene_InventoryMenu) ||
+ ui.IsSceneInStack(i, eUIScene_HorseMenu);
+ bool isEditing = ui.GetTopScene(i) && ui.GetTopScene(i)->isDirectEditBlocking();
+
if(g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_INVENTORY))
{
- if(ui.IsSceneInStack(i, eUIScene_InventoryMenu))
+ if(isClosableByEitherKey && !isEditing)
{
ui.CloseUIScenes(i);
}
@@ -1496,7 +1510,7 @@ void Minecraft::run_middle()
if(g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_CRAFTING) || g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_CRAFTING_ALT))
{
- if(ui.IsSceneInStack(i, eUIScene_Crafting2x2Menu) || ui.IsSceneInStack(i, eUIScene_Crafting3x3Menu) || ui.IsSceneInStack(i, eUIScene_CreativeMenu))
+ if((ui.IsSceneInStack(i, eUIScene_Crafting2x2Menu) || ui.IsSceneInStack(i, eUIScene_Crafting3x3Menu) || ui.IsSceneInStack(i, eUIScene_CreativeMenu) || isClosableByEitherKey) && !isEditing)
{
ui.CloseUIScenes(i);
}