diff options
author | mathieui <mathieui@mathieui.net> | 2012-05-17 17:15:15 +0200 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2012-05-17 17:15:15 +0200 |
commit | 3411d8ca83591adf9a92b3c1c78fbd74a4612fe7 (patch) | |
tree | 5b98602736bc9e55aabb9c238f92cfc295942bbe | |
parent | 0f8a5abdc0818b4071bf4623a12ee95223b11ba3 (diff) | |
download | poezio-3411d8ca83591adf9a92b3c1c78fbd74a4612fe7.tar.gz poezio-3411d8ca83591adf9a92b3c1c78fbd74a4612fe7.tar.bz2 poezio-3411d8ca83591adf9a92b3c1c78fbd74a4612fe7.tar.xz poezio-3411d8ca83591adf9a92b3c1c78fbd74a4612fe7.zip |
Add a shortcut to go to the first unread message (separator) with M-p
-rw-r--r-- | doc/en/keys.txt | 1 | ||||
-rw-r--r-- | src/tabs.py | 6 | ||||
-rw-r--r-- | src/windows.py | 6 |
3 files changed, 10 insertions, 3 deletions
diff --git a/doc/en/keys.txt b/doc/en/keys.txt index 07fd7d17..874614df 100644 --- a/doc/en/keys.txt +++ b/doc/en/keys.txt @@ -95,6 +95,7 @@ height of the conversation window - 1. *Alt-v*:: Move the separator at the bottom of the tab. +*Alt-h*:: Scroll to the separator, if there is one. MultiUserChat tab input keys ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/tabs.py b/src/tabs.py index 92b913b0..61b322a0 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -394,6 +394,7 @@ class ChatTab(Tab): # since the last input self.remote_supports_attention = False self.key_func['M-v'] = self.move_separator + self.key_func['M-h'] = self.scroll_separator self.key_func['M-/'] = self.last_words_completion self.key_func['^M'] = self.on_enter self.commands['say'] = (self.command_say, @@ -566,6 +567,11 @@ class ChatTab(Tab): def on_half_scroll_down(self): self.text_win.scroll_down((self.text_win.height-1) // 2) + def scroll_separator(self): + self.text_win.scroll_to_separator() + self.refresh() + self.core.doupdate() + class MucTab(ChatTab): """ diff --git a/src/windows.py b/src/windows.py index e5973ec9..29bf5953 100644 --- a/src/windows.py +++ b/src/windows.py @@ -731,11 +731,11 @@ class TextWin(Win): present, scroll at the top of the window """ if None in self.built_lines: - self.pos = self.built_lines.index(None) + self.pos = len(self.built_lines) - self.built_lines.index(None) - self.height + 1 + if self.pos < 0: + self.pos = 0 # Chose a proper position (not too high) self.scroll_up(0) - else: # Go at the top of the win - self.pos = len(self.built_lines) - self.height def remove_line_separator(self): """ |