def expose(self, event): if event.window == self.get_window(gtk.TEXT_WINDOW_LEFT): y1 = self.window_to_buffer_coords (gtk.TEXT_WINDOW_LEFT, 0, event.area.y)[1] y2 = self.window_to_buffer_coords (gtk.TEXT_WINDOW_LEFT, 0, event.area.y + event.area.height)[1] print y1, y2 i = self.get_line_at_y(y1)[0] layout = self.create_pango_layout("pippo") # TODO: get a line specific string while True: (y, h) = self.get_line_yrange(i) print y if y > y2: break self.style.paint_layout(event.window, self.state, False, event.area, self, None, 0, y, layout) if not i.forward_line(): break