aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Minecraft.cpp
diff options
context:
space:
mode:
authorAdem Kurt <138557116+Adem-Kurt@users.noreply.github.com>2026-03-08 22:06:01 +0300
committerGitHub <noreply@github.com>2026-03-09 03:06:01 +0800
commit4cec4f4500788f693566e443fdfa56337db05771 (patch)
tree924484dfd5f8993f0aa6e3ef78b1365e20700da7 /Minecraft.Client/Minecraft.cpp
parent45704388b6103ddc2d82d5f6ad740d64986490fc (diff)
Allow closing some menus with inventory/crafting keys (#868)
Diffstat (limited to 'Minecraft.Client/Minecraft.cpp')
-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);
}