diff --git a/src/custom_widgets/message_widget.py b/src/custom_widgets/message_widget.py index 2cd32d3..7e68f55 100644 --- a/src/custom_widgets/message_widget.py +++ b/src/custom_widgets/message_widget.py @@ -345,6 +345,9 @@ class action_buttons(Gtk.Box): def regenerate_message(self): chat = self.get_parent().get_parent().get_parent().get_parent().get_parent() message_element = self.get_parent() + if message_element.spinner: + message_element.container.remove(message_element.spinner) + message_element.spinner = None if not chat.busy: message_element.set_text() if message_element.footer: @@ -425,6 +428,8 @@ class message(Gtk.Overlay): if not self.action_buttons: self.action_buttons = action_buttons(self.bot) self.add_overlay(self.action_buttons) + if not self.text: + self.action_buttons.set_visible(False) def update_message(self, data:dict): chat = self.get_parent().get_parent().get_parent().get_parent() @@ -452,6 +457,9 @@ class message(Gtk.Overlay): window.show_notification(chat.get_name(), self.text[:200] + (self.text[200:] and '...'), Gio.ThemedIcon.new("chat-message-new-symbolic")) window.save_history(chat) else: + if self.spinner: + self.container.remove(self.spinner) + self.spinner = None sys.exit() def set_text(self, text:str=None): @@ -538,6 +546,9 @@ class message(Gtk.Overlay): text_b = text_block(self.bot) text_b.set_visible(False) self.content_children.append(text_b) + if self.spinner: + self.container.remove(self.spinner) + self.spinner = None self.spinner = Gtk.Spinner(spinning=True, margin_top=12, margin_bottom=12, hexpand=True) self.container.append(self.spinner) self.container.append(text_b) diff --git a/src/window.py b/src/window.py index cbfb23c..a074f7a 100644 --- a/src/window.py +++ b/src/window.py @@ -558,8 +558,12 @@ Generate a title following these rules: if response.status_code != 200: raise Exception('Network Error') except Exception as e: + self.chat_list_box.get_tab_by_name(chat.get_name()).spinner.set_visible(False) chat.busy = False GLib.idle_add(message_element.add_action_buttons) + if message_element.spinner: + GLib.idle_add(message_element.container.remove, message_element.spinner) + message_element.spinner = None GLib.idle_add(chat.show_regenerate_button, message_element) GLib.idle_add(self.connection_error)