From 55788f6127c25a549aa93efd5ed147695f875890 Mon Sep 17 00:00:00 2001 From: mathieui Date: Thu, 16 Feb 2012 00:24:18 +0100 Subject: Add half-page scrolling (C-u / C-d) --- src/core.py | 10 ++++++++++ src/tabs.py | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+) (limited to 'src') diff --git a/src/core.py b/src/core.py index 91f69813..f9ae4198 100644 --- a/src/core.py +++ b/src/core.py @@ -158,6 +158,8 @@ class Core(object): "KEY_NPAGE": self.scroll_page_down, "^B": self.scroll_line_up, "^F": self.scroll_line_down, + "^D": self.scroll_half_down, + "^U": self.scroll_half_up, "KEY_F(5)": self.rotate_rooms_left, "^P": self.rotate_rooms_left, 'kLFT3': self.rotate_rooms_left, @@ -1140,6 +1142,14 @@ class Core(object): self.current_tab().on_line_down() self.refresh_window() + def scroll_half_up(self, args=None): + self.current_tab().on_half_scroll_up() + self.refresh_window() + + def scroll_half_down(self, args=None): + self.current_tab().on_half_scroll_down() + self.refresh_window() + def get_error_message_from_error_stanza(self, stanza): """ Takes a stanza of the form diff --git a/src/tabs.py b/src/tabs.py index f9032b6e..55e3154c 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -324,6 +324,18 @@ class Tab(object): """ pass + def on_half_scroll_down(self): + """ + Defines what happens when we scroll half a screen down + """ + pass + + def on_half_scroll_up(self): + """ + Defines what happens when we scroll half a screen up + """ + pass + def on_info_win_size_changed(self): """ Called when the window with the informations is resized @@ -529,6 +541,12 @@ class ChatTab(Tab): def on_scroll_down(self): self.text_win.scroll_down(self.text_win.height-1) + def on_half_scroll_up(self): + self.text_win.scroll_up((self.text_win.height-1) // 2) + + def on_half_scroll_down(self): + self.text_win.scroll_down((self.text_win.height-1) // 2) + class MucTab(ChatTab): """ -- cgit v1.2.3