diff --git a/src/main/java/mezz/jei/gui/overlay/IngredientListOverlay.java b/src/main/java/mezz/jei/gui/overlay/IngredientListOverlay.java index 2621764a..040d47db 100644 --- a/src/main/java/mezz/jei/gui/overlay/IngredientListOverlay.java +++ b/src/main/java/mezz/jei/gui/overlay/IngredientListOverlay.java @@ -220,6 +220,9 @@ public void handleTick() { @Override public boolean isMouseOver(int mouseX, int mouseY) { + if (guiScreenHelper.isInGuiExclusionArea(mouseX, mouseY)) { + return false; + } if (isListDisplayed()) { if (Config.isCenterSearchBarEnabled() && searchField.isMouseOver(mouseX, mouseY)) { return true; diff --git a/src/main/java/mezz/jei/gui/overlay/bookmarks/LeftAreaDispatcher.java b/src/main/java/mezz/jei/gui/overlay/bookmarks/LeftAreaDispatcher.java index 648b366c..123f2387 100644 --- a/src/main/java/mezz/jei/gui/overlay/bookmarks/LeftAreaDispatcher.java +++ b/src/main/java/mezz/jei/gui/overlay/bookmarks/LeftAreaDispatcher.java @@ -123,8 +123,12 @@ public boolean canSetFocusWithMouse() { return false; } + public boolean isMouseOver(int mouseX, int mouseY) { + return canShow && hasContent() && !guiScreenHelper.isInGuiExclusionArea(mouseX, mouseY); + } + public boolean handleMouseScrolled(int mouseX, int mouseY, int dWheel) { - if (canShow && hasContent()) { + if (isMouseOver(mouseX, mouseY)) { if (displayArea.contains(mouseX, mouseY)) { return contents.get(current).handleMouseScrolled(mouseX, mouseY, dWheel); } else if (naviArea.contains(mouseX, mouseY)) { @@ -140,7 +144,7 @@ public boolean handleMouseScrolled(int mouseX, int mouseY, int dWheel) { } public boolean handleMouseClicked(int mouseX, int mouseY, int mouseButton) { - if (canShow && hasContent()) { + if (isMouseOver(mouseX, mouseY)) { if (displayArea.contains(mouseX, mouseY)) { return contents.get(current).handleMouseClicked(mouseX, mouseY, mouseButton); } else if (naviArea.contains(mouseX, mouseY)) { @@ -151,7 +155,7 @@ public boolean handleMouseClicked(int mouseX, int mouseY, int mouseButton) { } public boolean handleMouseReleased(int mouseX, int mouseY, int mouseButton) { - if (!(canShow || hasContent())) { + if (!isMouseOver(mouseX, mouseY)) { return false; } diff --git a/src/main/java/mezz/jei/input/InputHandler.java b/src/main/java/mezz/jei/input/InputHandler.java index 85a0964c..341e591b 100644 --- a/src/main/java/mezz/jei/input/InputHandler.java +++ b/src/main/java/mezz/jei/input/InputHandler.java @@ -153,7 +153,15 @@ private boolean handleMouseRelease(GuiScreen guiScreen, int mouseX, int mouseY) } private boolean handleMouseScroll(int dWheel, int mouseX, int mouseY) { - return ingredientListOverlay.handleMouseScrolled(mouseX, mouseY, dWheel) || leftAreaDispatcher.handleMouseScrolled(mouseX, mouseY, dWheel); + if (ingredientListOverlay.isMouseOver(mouseX, mouseY) && ingredientListOverlay.handleMouseScrolled(mouseX, mouseY, dWheel)) { + return true; + } + + if (leftAreaDispatcher.isMouseOver(mouseX, mouseY) && leftAreaDispatcher.handleMouseScrolled(mouseX, mouseY, dWheel)) { + return true; + } + + return false; } private boolean handleMouseClick(GuiScreen guiScreen, int mouseButton, int mouseX, int mouseY) {