+/* Cause RANGE to be redrawn. If RANGE is null, then the
+ entire visible range will be redrawn.
+ */
+static void
+redraw_range (GtkSheet *sheet, GtkSheetRange *range)
+{
+ GdkRectangle rect;
+
+ if ( ! GTK_WIDGET_REALIZED (sheet))
+ return;
+
+ if ( NULL != range )
+ rectangle_from_range (sheet, range, &rect);
+ else
+ {
+ GdkRegion *r = gdk_drawable_get_visible_region (sheet->sheet_window);
+ gdk_region_get_clipbox (r, &rect);
+
+ if ( sheet->column_titles_visible)
+ {
+ rect.y += sheet->column_title_area.height;
+ rect.height -= sheet->column_title_area.height;
+ }
+
+ if ( sheet->row_titles_visible)
+ {
+ rect.x += sheet->row_title_area.width;
+ rect.width -= sheet->row_title_area.width;
+ }
+ }
+
+ gdk_window_invalidate_rect (sheet->sheet_window, &rect, FALSE);
+}
+
+