gdk_draw_line() draws lines by passing the coordinates to XDrawLine(), which in turn casts the coordinates to "signed int" as it formats them for the X Protocol. Thus, large coordinate values wrap around and cause odd visual artifacts.
This fixes the problem by only calling gdk_draw_line() with coordinate values that should actually be visible. --- src/ui/gui/pspp-sheet-view.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ui/gui/pspp-sheet-view.c b/src/ui/gui/pspp-sheet-view.c index 0948ccb..5c2250a 100644 --- a/src/ui/gui/pspp-sheet-view.c +++ b/src/ui/gui/pspp-sheet-view.c @@ -3483,10 +3483,12 @@ pspp_sheet_view_draw_grid_lines (PsppSheetView *tree_view, current_x += column->width; - gdk_draw_line (event->window, - tree_view->priv->grid_line_gc, - current_x - 1, 0, - current_x - 1, height); + if (current_x - 1 >= event->area.x + && current_x - 1 < event->area.x + event->area.width) + gdk_draw_line (event->window, + tree_view->priv->grid_line_gc, + current_x - 1, 0, + current_x - 1, height); } } -- 1.7.2.5 _______________________________________________ pspp-dev mailing list pspp-dev@gnu.org https://lists.gnu.org/mailman/listinfo/pspp-dev