fix: Closing storage overlay when searching for "e"
This commit is contained in:
@@ -302,6 +302,7 @@ class StorageOverlayScreen : Screen(Text.literal("")) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun mouseClicked(mouseX: Double, mouseY: Double, button: Int, activePage: StoragePageSlot?): Boolean {
|
fun mouseClicked(mouseX: Double, mouseY: Double, button: Int, activePage: StoragePageSlot?): Boolean {
|
||||||
|
guiContext.setFocusedElement(null) // Blur all elements. They will be refocused by clickMCComponentInPlace if in doubt, and we don't have any double click components.
|
||||||
if (getScrollPanelInner().contains(mouseX, mouseY)) {
|
if (getScrollPanelInner().contains(mouseX, mouseY)) {
|
||||||
val data = StorageOverlay.Data.data ?: StorageData()
|
val data = StorageOverlay.Data.data ?: StorageData()
|
||||||
layoutedForEach(data) { rect, page, _ ->
|
layoutedForEach(data) { rect, page, _ ->
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import kotlin.time.Duration
|
|||||||
import kotlin.time.Duration.Companion.seconds
|
import kotlin.time.Duration.Companion.seconds
|
||||||
import net.minecraft.client.gui.DrawContext
|
import net.minecraft.client.gui.DrawContext
|
||||||
import net.minecraft.client.gui.screen.Screen
|
import net.minecraft.client.gui.screen.Screen
|
||||||
|
import net.minecraft.client.util.InputUtil
|
||||||
import moe.nea.firmament.gui.BarComponent
|
import moe.nea.firmament.gui.BarComponent
|
||||||
import moe.nea.firmament.gui.FirmButtonComponent
|
import moe.nea.firmament.gui.FirmButtonComponent
|
||||||
import moe.nea.firmament.gui.FirmHoverComponent
|
import moe.nea.firmament.gui.FirmHoverComponent
|
||||||
@@ -257,7 +258,17 @@ object MoulConfigUtils {
|
|||||||
keyboardEvent: KeyboardEvent
|
keyboardEvent: KeyboardEvent
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val immContext = createInPlaceFullContext(null, IMinecraft.instance.mouseX, IMinecraft.instance.mouseY)
|
val immContext = createInPlaceFullContext(null, IMinecraft.instance.mouseX, IMinecraft.instance.mouseY)
|
||||||
return component.keyboardEvent(keyboardEvent, immContext.translated(x, y, w, h))
|
if (component.keyboardEvent(keyboardEvent, immContext.translated(x, y, w, h)))
|
||||||
|
return true
|
||||||
|
if (component.context.getFocusedElement() != null) {
|
||||||
|
if (keyboardEvent is KeyboardEvent.KeyPressed
|
||||||
|
&& keyboardEvent.pressed && keyboardEvent.keycode == InputUtil.GLFW_KEY_ESCAPE
|
||||||
|
) {
|
||||||
|
component.context.setFocusedElement(null)
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clickMCComponentInPlace(
|
fun clickMCComponentInPlace(
|
||||||
|
|||||||
Reference in New Issue
Block a user