From eebbfb55d4e489337f65eaa90311c543afe5aa27 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Sun, 25 Feb 2018 18:40:39 +0900
Subject: [PATCH] Fix #1144

---
 .../common/views/components/autocomplete.vue  | 21 +++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/web/app/common/views/components/autocomplete.vue b/src/web/app/common/views/components/autocomplete.vue
index 401eb043d0..04a74e4e23 100644
--- a/src/web/app/common/views/components/autocomplete.vue
+++ b/src/web/app/common/views/components/autocomplete.vue
@@ -87,9 +87,15 @@ export default Vue.extend({
 			el.addEventListener('mousedown', this.onMousedown);
 		});
 
-		this.exec();
+		this.$nextTick(() => {
+			this.exec();
 
-		this.$watch('q', this.exec);
+			this.$watch('q', () => {
+				this.$nextTick(() => {
+					this.exec();
+				});
+			});
+		});
 	},
 	beforeDestroy() {
 		this.textarea.removeEventListener('keydown', this.onKeydown);
@@ -100,6 +106,13 @@ export default Vue.extend({
 	},
 	methods: {
 		exec() {
+			this.select = -1;
+			if (this.$refs.suggests) {
+				Array.from(this.items).forEach(el => {
+					el.removeAttribute('data-selected');
+				});
+			}
+
 			if (this.type == 'user') {
 				const cache = sessionStorage.getItem(this.q);
 				if (cache) {
@@ -168,6 +181,10 @@ export default Vue.extend({
 					cancel();
 					this.selectNext();
 					break;
+
+				default:
+					e.stopPropagation();
+					this.textarea.focus();
 			}
 		},