diff -up vim80/src/gui_gtk_x11.c.gtk3-render vim80/src/gui_gtk_x11.c
--- vim80/src/gui_gtk_x11.c.gtk3-render 2017-02-22 10:38:37.935193240 +0100
+++ vim80/src/gui_gtk_x11.c 2017-02-22 10:53:22.847435530 +0100
@@ -688,8 +688,13 @@ draw_event(GtkWidget *widget UNUSED,
{
const cairo_rectangle_t rect = list->rectangles[i];
- gui_mch_clear_block(Y_2_ROW(rect.y), 1,
- Y_2_ROW(rect.y + rect.height - 1), Columns);
+ gui_mch_clear_block(Y_2_ROW((int)rect.y), 0,
+ Y_2_ROW((int)(rect.y + rect.height)) - 1, Columns - 1);
+ }
+
+ for (i = 0; i < list->num_rectangles; i++)
+ {
+ const cairo_rectangle_t rect = list->rectangles[i];
if (blink_mode)
gui_gtk3_redraw(rect.x, rect.y, rect.width, rect.height);
@@ -6723,6 +6728,11 @@ gui_mch_clear_block(int row1, int col1,
color.pixel = gui.back_pixel;
#endif
+ col1 = check_col(col1);
+ col2 = check_col(col2);
+ row1 = check_row(row1);
+ row2 = check_row(row2);
+
#if GTK_CHECK_VERSION(3,0,0)
{
/* Add one pixel to the far right column in case a double-stroked