From 5b5b2375a18c8b0470a91e8c2433b4e412de3349 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Fri, 17 Dec 2010 12:09:56 +0100 Subject: [PATCH] don't scroll in groupchat when window doesn't have focus. Fixes #6100 --- src/conversation_textview.py | 8 +++++--- src/groupchat_control.py | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/conversation_textview.py b/src/conversation_textview.py index 5c45e1ecc..1fdd4aa9d 100644 --- a/src/conversation_textview.py +++ b/src/conversation_textview.py @@ -522,7 +522,7 @@ class ConversationTextview(gobject.GObject): del self.xep0184_marks[id_] del self.xep0184_shown[id_] - def show_focus_out_line(self): + def show_focus_out_line(self, scroll=True): if not self.allow_focus_out_line: # if room did not receive focus-in from the last time we added # --- line then do not readd @@ -581,8 +581,10 @@ class ConversationTextview(gobject.GObject): buffer_.end_user_action() - # scroll to the end (via idle in case the scrollbar has appeared) - gobject.idle_add(self.scroll_to_end) + if scroll: + # scroll to the end (via idle in case the scrollbar has + # appeared) + gobject.idle_add(self.scroll_to_end) def show_xep0184_warning_tooltip(self): pointer = self.tv.get_pointer() diff --git a/src/groupchat_control.py b/src/groupchat_control.py index c416869bb..3af4ad402 100644 --- a/src/groupchat_control.py +++ b/src/groupchat_control.py @@ -1149,7 +1149,8 @@ class GroupchatControl(ChatControlBase): # we have full focus (we are reading it!) return - self.conv_textview.show_focus_out_line() + at_the_end = self.conv_textview.at_the_end() + self.conv_textview.show_focus_out_line(scroll=at_the_end) def needs_visual_notification(self, text): """