diff --git a/src/alpaca.gresource.xml b/src/alpaca.gresource.xml
index 50cd23b..4c647cd 100644
--- a/src/alpaca.gresource.xml
+++ b/src/alpaca.gresource.xml
@@ -30,6 +30,7 @@
icons/image-missing-symbolic.svg
icons/update-symbolic.svg
icons/down-symbolic.svg
+ icons/chat-bubble-text-symbolic.svg
window.ui
gtk/help-overlay.ui
diff --git a/src/custom_widgets/chat_widget.py b/src/custom_widgets/chat_widget.py
index cd428d5..39324ed 100644
--- a/src/custom_widgets/chat_widget.py
+++ b/src/custom_widgets/chat_widget.py
@@ -215,12 +215,16 @@ class chat_tab(Gtk.ListBoxRow):
wrap_mode=2,
xalign=0
)
+ self.indicator = Gtk.Image.new_from_icon_name("chat-bubble-text-symbolic")
+ self.indicator.set_visible(False)
+ self.indicator.set_css_classes(['accent'])
container = Gtk.Box(
orientation=0,
- spacing=10
+ spacing=5
)
- container.append(self.spinner)
container.append(self.label)
+ container.append(self.spinner)
+ container.append(self.indicator)
super().__init__(
css_classes = ["chat_row"],
height_request = 45,
@@ -429,3 +433,5 @@ class chat_list(Gtk.ListBox):
if len(row.chat_window.messages) > 0:
last_model_used = row.chat_window.messages[list(row.chat_window.messages)[-1]].model
window.model_manager.change_model(last_model_used)
+ if row.indicator.get_visible():
+ row.indicator.set_visible(False)
diff --git a/src/custom_widgets/message_widget.py b/src/custom_widgets/message_widget.py
index a212550..c968241 100644
--- a/src/custom_widgets/message_widget.py
+++ b/src/custom_widgets/message_widget.py
@@ -431,8 +431,6 @@ class message(Gtk.Overlay):
if chat.busy:
vadjustment = chat.get_vadjustment()
if self.spinner:
- if not window.chat_list_box.get_sensitive():
- window.chat_list_box.set_sensitive(True)
self.container.remove(self.spinner)
self.spinner = None
self.content_children[-1].set_visible(True)
@@ -442,6 +440,8 @@ class message(Gtk.Overlay):
self.content_children[-1].insert_at_end(data['message']['content'], False)
if 'done' in data and data['done']:
window.chat_list_box.get_tab_by_name(chat.get_name()).spinner.set_visible(False)
+ if window.chat_list_box.get_current_chat().get_name() != chat.get_name():
+ window.chat_list_box.get_tab_by_name(chat.get_name()).indicator.set_visible(True)
if chat.welcome_screen:
chat.container.remove(chat.welcome_screen)
chat.welcome_screen = None
diff --git a/src/icons/chat-bubble-text-symbolic.svg b/src/icons/chat-bubble-text-symbolic.svg
new file mode 100644
index 0000000..c364f9e
--- /dev/null
+++ b/src/icons/chat-bubble-text-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/src/window.py b/src/window.py
index 92d46a7..f204e85 100644
--- a/src/window.py
+++ b/src/window.py
@@ -523,7 +523,6 @@ Generate a title following these rules:
if len(data['messages']) == 1 and chat.get_name().startswith(_("New Chat")):
threading.Thread(target=self.generate_chat_title, args=(data['messages'][0].copy(), chat.get_name())).start()
- self.chat_list_box.set_sensitive(False)
if chat.welcome_screen:
chat.welcome_screen.set_visible(False)
if chat.regenerate_button: