changeset 26839042128c in /home/hg/repos/gajim
author: Yann Leboulanger asterix@lagaule.org branches: gtk3 details:http://hg.gajim.org/gajim?cmd=changeset;node=26839042128c description: fix position of tooltip when tooltip is too high for the screen. Fixes #7490
diffstat:
src/tooltips.py | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-)
diffs (38 lines):
diff -r 1380b5a58dbb -r 26839042128c src/tooltips.py --- a/src/tooltips.py Wed Oct 30 13:13:00 2013 +0100 +++ b/src/tooltips.py Wed Oct 30 13:44:19 2013 +0100 @@ -115,6 +115,22 @@
def on_size_allocate(self, widget, rect): half_width = rect.width / 2 + 1 + if self.preferred_position[1] + rect.height > self.screen.get_height(): + # flip tooltip up + self.preferred_position[1] -= rect.height + self.widget_height + 8 + if self.preferred_position[1] < 0: + self.preferred_position[1] = self.screen.get_height() - \ + rect.height - 2 + + if self.preferred_position[0] + rect.width + 7 < \ + self.screen.get_width(): + self.preferred_position[0] = self.preferred_position[0] + 7 + else: + self.preferred_position[0] = self.preferred_position[0] - \ + rect.width - 7 + self.win.move(self.preferred_position[0], + self.preferred_position[1]) + return if self.preferred_position[0] < half_width: self.preferred_position[0] = 0 elif self.preferred_position[0] + rect.width > \ @@ -122,11 +138,6 @@ self.preferred_position[0] = self.screen.get_width() - rect.width elif not self.check_last_time: self.preferred_position[0] -= half_width - if self.preferred_position[1] + rect.height > self.screen.get_height(): - # flip tooltip up - self.preferred_position[1] -= rect.height + self.widget_height + 8 - if self.preferred_position[1] < 0: - self.preferred_position[1] = 0 self.win.move(self.preferred_position[0], self.preferred_position[1])
def show_tooltip(self, data, widget_height, widget_y_position):