This was surprisingly simple to fix by just turning off scrolling in
draw_view_line. From the BUGS file:
- If the screen width is very small the main view can draw outside the
current view causing bad wrapping. Same goes for title and status
windows.
- The cursor can wrap-around on the last line and cause the window to
scroll.
Known bugs and problems:
- In it's current state tig is pretty much UTF-8 only.
-
- - If the screen width is very small the main view can draw
- outside the current view causing bad wrapping. Same goes
- for title and status windows.
-
- - The cursor can wrap-around on the last line and cause the
- window to scroll.
{
struct line *line;
bool selected = (view->offset + lineno == view->lineno);
+ bool draw_ok;
assert(view_is_displayed(view));
wclrtoeol(view->win);
}
- return view->ops->draw(view, line, lineno, selected);
+ scrollok(view->win, FALSE);
+ draw_ok = view->ops->draw(view, line, lineno, selected);
+ scrollok(view->win, TRUE);
+
+ return draw_ok;
}
static void