diff --git a/src/core.py b/src/core.py index 2bce73db..7b3bcb62 100644 --- a/src/core.py +++ b/src/core.py @@ -1398,6 +1398,11 @@ class Core(object): self.focus_tab_named(roster_row.get_jid().full) self.refresh_window() + def remove_timed_event(self, event): + if event and event in self.timed_events: + log.debug('removing event') + self.timed_events.remove(event) + def add_timed_event(self, event): self.timed_events.add(event) diff --git a/src/tabs.py b/src/tabs.py index 03fa0856..5f11e1f0 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -336,7 +336,7 @@ class ChatTab(Tab): if self.timed_event_paused: event = self.timed_event_paused() if event: - self.core.timed_events.remove(event) + self.core.remove_timed_event(event) del event self.timed_event_paused = None @@ -619,6 +619,7 @@ class MucTab(ChatTab): msg['xhtml_im'] = xhtml.poezio_colors_to_html(line) if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False: msg['chat_state'] = 'active' + self.cancel_paused_delay() msg.send() def command_ignore(self, arg): @@ -986,6 +987,7 @@ class PrivateTab(ChatTab): msg.send() self.core.add_message_to_text_buffer(self.get_room(), line, None, self.core.own_nick) logger.log_message(JID(self.get_name()).bare, self.core.own_nick, line) + self.cancel_paused_delay() self.text_win.refresh(self._room) self.input.refresh() @@ -1421,6 +1423,7 @@ class ConversationTab(ChatTab): msg.send() self.core.add_message_to_text_buffer(self.get_room(), line, None, self.core.own_nick) logger.log_message(JID(self.get_name()).bare, self.core.own_nick, line) + self.cancel_paused_delay() self.text_win.refresh(self._room) self.input.refresh() diff --git a/src/windows.py b/src/windows.py index 25aaeb06..f68162ae 100644 --- a/src/windows.py +++ b/src/windows.py @@ -1340,7 +1340,7 @@ class RosterWin(Win): if y-self.start_pos+1 == self.height: break line = ' '*self.width - while y <= self.height: + while y < self.height: self.addstr(y, 0, line) y += 1 if self.start_pos > 1: