From 9366d6d3aa9798a060a6fb98bb510462bb74217c Mon Sep 17 00:00:00 2001 From: MCbabel Date: Sun, 8 Mar 2026 02:24:51 +0100 Subject: [PATCH] Fix focus sound playing repeatedly on mouse hover Only play eSFX_Focus when the focus control or child actually changes. Previously the sound fired on every focus event even when hovering over the same element, causing rapid sound spam over Texture Pack icons in the Create World menu. Fixes a bug reported on Discord. --- Minecraft.Client/Common/UI/UIScene.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Minecraft.Client/Common/UI/UIScene.cpp b/Minecraft.Client/Common/UI/UIScene.cpp index 3f204414f..d01585cb8 100644 --- a/Minecraft.Client/Common/UI/UIScene.cpp +++ b/Minecraft.Client/Common/UI/UIScene.cpp @@ -1331,11 +1331,17 @@ bool UIScene::hasRegisteredSubstitutionTexture(const wstring &textureName) void UIScene::_handleFocusChange(F64 controlId, F64 childId) { - m_iFocusControl = (int)controlId; - m_iFocusChild = (int)childId; + int newControl = (int)controlId; + int newChild = (int)childId; - handleFocusChange(controlId, childId); - ui.PlayUISFX(eSFX_Focus); + if (newControl != m_iFocusControl || newChild != m_iFocusChild) + { + m_iFocusControl = newControl; + m_iFocusChild = newChild; + + handleFocusChange(controlId, childId); + ui.PlayUISFX(eSFX_Focus); + } } void UIScene::_handleInitFocus(F64 controlId, F64 childId)