fix missing Element::onMouseLeave when pushing element above it

This commit is contained in:
Bixilon 2022-02-18 14:51:42 +01:00
parent 834e318ab3
commit 6da5a25e6a
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 10 additions and 7 deletions

View File

@ -184,11 +184,7 @@ class GUIManager(
fun open(builder: GUIBuilder<*>) {
clear()
val element = this[builder]
elementOrder += element
element.onOpen()
renderWindow.inputHandler.inputHandler = guiRenderer
push(builder)
}
fun popOrPause() {
@ -206,9 +202,15 @@ class GUIManager(
if (elementOrder.isEmpty()) {
renderWindow.inputHandler.inputHandler = guiRenderer
}
elementOrder.firstOrNull()?.onHide()
for ((index, elementEntry) in elementOrder.toList().withIndex()) {
if (index != 0 && !elementEntry.activeWhenHidden) {
continue
}
elementEntry.onHide()
}
elementOrder.add(0, element)
element.onOpen()
onMouseMove(guiRenderer.currentCursorPosition)
}
@Deprecated("Only use for dynamic gui (e.g. dialogs, ...)")

View File

@ -168,6 +168,7 @@ class LayoutedGUIElement<T : LayoutedElement>(
override fun onHide() {
elementLayout.onHide()
elementLayout.onMouseLeave()
}
companion object {

View File

@ -27,7 +27,7 @@ abstract class Popper(
guiRenderer: GUIRenderer,
position: Vec2i,
) : Element(guiRenderer), LayoutedElement {
private val background = ColorElement(guiRenderer, Vec2i.EMPTY, color = ChatColors.YELLOW)
private val background = ColorElement(guiRenderer, Vec2i.EMPTY, color = ChatColors.DARK_BLUE)
open var dead = false
override var layoutOffset: Vec2i = position
protected set