diff --git a/editor/src/main/java/com/itsaky/androidide/editor/ui/AbstractPopupWindow.kt b/editor/src/main/java/com/itsaky/androidide/editor/ui/AbstractPopupWindow.kt index a2bbbe4e9..de204033c 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/ui/AbstractPopupWindow.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/ui/AbstractPopupWindow.kt @@ -17,6 +17,7 @@ package com.itsaky.androidide.editor.ui +import com.itsaky.androidide.utils.ILogger import io.github.rosemoe.sora.widget.CodeEditor import io.github.rosemoe.sora.widget.base.EditorPopupWindow @@ -28,8 +29,17 @@ import io.github.rosemoe.sora.widget.base.EditorPopupWindow abstract class AbstractPopupWindow(editor: CodeEditor, features: Int) : EditorPopupWindow(editor, features) { + companion object { + private val log = ILogger.newInstance("AbstractPopupWindow") + } + override fun show() { (editor as? IDEEditor)?.ensureWindowsDismissed() + if (!editor.isAttachedToWindow) { + log.error("Trying to show popup window '${javaClass.name}' when editor is not attached to window") + return + } + super.show() } diff --git a/editor/src/main/java/com/itsaky/androidide/editor/ui/EditorActionsMenu.kt b/editor/src/main/java/com/itsaky/androidide/editor/ui/EditorActionsMenu.kt index b4c944428..2771dc95b 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/ui/EditorActionsMenu.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/ui/EditorActionsMenu.kt @@ -69,7 +69,7 @@ import kotlin.math.min * @author Akash Yadav */ @SuppressLint("RestrictedApi") -open class EditorActionsMenu constructor(val editor: IDEEditor) : +open class EditorActionsMenu(val editor: IDEEditor) : AbstractPopupWindow(editor, FEATURE_SHOW_OUTSIDE_VIEW_ALLOWED), ActionsRegistry.ActionExecListener, MenuBuilder.Callback {