From dcc625f75b4f10d9c96e9e002daa99cb6bdafd52 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Sun, 24 Sep 2023 20:10:41 +0530 Subject: [PATCH] fix: completion window is not shown for the second time (#1329, fixes #1281) --- .../androidide/editor/ui/AbstractPopupWindow.kt | 5 +++++ .../androidide/editor/ui/EditorCompletionWindow.kt | 13 ++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) 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 0213efb99..f6de476f8 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 @@ -31,4 +31,9 @@ abstract class AbstractPopupWindow(editor: CodeEditor, features: Int) : (editor as? IDEEditor)?.ensureWindowsDismissed() super.show() } + + override fun isShowing(): Boolean { + @Suppress("UNNECESSARY_SAFE_CALL", "USELESS_ELVIS") + return popup?.isShowing ?: false + } } diff --git a/editor/src/main/java/com/itsaky/androidide/editor/ui/EditorCompletionWindow.kt b/editor/src/main/java/com/itsaky/androidide/editor/ui/EditorCompletionWindow.kt index 79b18a89b..6837ed752 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/ui/EditorCompletionWindow.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/ui/EditorCompletionWindow.kt @@ -43,6 +43,12 @@ class EditorCompletionWindow(val editor: IDEEditor) : EditorAutoCompletion(edito init { setLayout(EditorCompletionLayout()) + setEnabledAnimation(true) + } + + override fun isShowing(): Boolean { + @Suppress("UNNECESSARY_SAFE_CALL", "USELESS_ELVIS") + return popup?.isShowing ?: false } override fun setLayout(layout: CompletionLayout) { @@ -93,7 +99,6 @@ class EditorCompletionWindow(val editor: IDEEditor) : EditorAutoCompletion(edito ProgressManager.instance.cancel(completionThread) } super.cancelCompletion() - popup.dismiss() } override fun requireCompletion() { @@ -122,13 +127,14 @@ class EditorCompletionWindow(val editor: IDEEditor) : EditorAutoCompletion(edito editor.handler, { val items = publisher.items + this.items.apply { clear() addAll(items) } if (lastAttachedItems == null || lastAttachedItems.get() != items) { - adapter.attachValues(this, this.items) + adapter.attachValues(this, items) adapter.notifyDataSetInvalidated() lastAttachedItems = WeakReference(items) } else { @@ -140,8 +146,9 @@ class EditorCompletionWindow(val editor: IDEEditor) : EditorAutoCompletion(edito hide() } + editor.updateCompletionWindowPosition() setSize(width, min(newHeight, maxHeight.toFloat()).toInt()) - if (!popup.isShowing) { + if (!isShowing) { show() }