def handle_other(self, event): if event.mod & KMOD_CTRL: if event.key == K_c: self.copy() elif event.key == K_x: self.cut() elif event.key == K_v: self.paste() elif event.key == K_HOME: self.cursor_loc = 0 elif event.key == K_END: self.cursor_loc = len(self.text) elif event.key == K_DELETE: self.delete() elif event.key == K_RETURN: self.enter_cb(self) elif event.key == K_RIGHT: self.cursor_loc += 1 elif event.key == K_LEFT: self.cursor_loc -= 1 self.cursor_loc = limit(self.cursor_loc, 0, len(self.text))
def _update(self): x, y = self._get_area() self.offset.x = limit(self.offset.x, 0, x - self.size.x) self.offset.y = limit(self.offset.y, 0, y - self.size.y)