diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt index 189e3d6e9..abb29655d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt @@ -334,22 +334,29 @@ open class EditablePanel @JvmOverloads constructor( private set var isFlashing: Boolean - get() = (flashingSince?.seconds ?: Long.MAX_VALUE) <= 1 + get() { + if (flashingSince == null) { + return false + } + + if (flashingSince!!.millis >= 1200L) { + flashingSince = null + return false + } + + return true + } set(value) { if (value) { flashingSince = SystemTime() + popup() } else { flashingSince = null } } - fun flash() { - isFlashing = true - popup() - } - val isFlashFrame: Boolean - get() = flashingSince != null && flashingSince!!.millis % 400L <= 200L + get() = isFlashing && flashingSince!!.millis % 400L <= 200L val isFlashFrameRecursive: Boolean get() { @@ -375,7 +382,7 @@ open class EditablePanel @JvmOverloads constructor( if (blockingWindow != null) { if (doFlash) { - blockingWindow.flash() + blockingWindow.isFlashing = true } return true @@ -404,7 +411,7 @@ open class EditablePanel @JvmOverloads constructor( } if (doFlash) { - blockingWindow.flash() + blockingWindow.isFlashing = true } return true @@ -1566,6 +1573,8 @@ open class EditablePanel @JvmOverloads constructor( for (child in Array(visibleChildrenInternal.size) { visibleChildrenInternal[it] }) { child.tick() } + + } var isRemoved = false