about summary refs log blame commit diff stats
path: root/src/chat_session.h
blob: 585a523be708da307af1ebee9069f09b8a5ab7ef (plain) (tree)
">.wid-2) else: self.win.addnstr(self.y + line, self.x, drawed.basename, self.wid) if self.display_infostring and drawed.infostring: info = drawed.infostring x = self.x + self.wid - 1 - len(info) if x > self.x: self.win.addstr(self.y + line, x, str(info) + ' ') self.color_at(self.y + line, self.x, self.wid, this_color) self.color_reset() def get_scroll_begin(self): offset = self.scroll_offset dirsize = len(self.target) winsize = self.hei halfwinsize = winsize // 2 index = self.target.pointed_index or 0 original = self.target.scroll_begin projected = index - original upper_limit = winsize - 1 - offset lower_limit = offset if dirsize < winsize: return 0 if halfwinsize < offset: return min( dirsize - winsize, max( 0, index - halfwinsize )) if original > dirsize - winsize: self.target.scroll_begin = dirsize - winsize return self.get_scroll_begin() if projected < upper_limit and projected > lower_limit: return original if projected > upper_limit: return min( dirsize - winsize, original + (projected - upper_limit)) if projected < upper_limit: return max( 0, original - (lower_limit - projected)) return original def set_scroll_begin(self): self.scroll_begin = self.get_scroll_begin() self.target.scroll_begin = self.scroll_begin