[gnumeric] SheetStyle: Make sheet_style_range_foreach use right ranges.



commit e8bfd011ef3e9744aa16d2330d38740aabde4721
Author: Morten Welinder <terra gnome org>
Date:   Fri Dec 28 10:24:33 2012 -0500

    SheetStyle: Make sheet_style_range_foreach use right ranges.
    
    When the input range doesn't start at (0,0), the ranges should still
    be correct.
    
    We get the incorrect ranges from sheet_style_get_range so the fix may
    need to move there, but it is not clear what that would break so don't
    do it yet.

 ChangeLog         |    6 ++++++
 src/sheet-style.c |    6 ++++++
 src/ssdiff.c      |    5 -----
 3 files changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 60f1383..a9192e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-28  Morten Welinder  <terra gnome org>
+
+	* src/sheet-style.c (sheet_style_range_foreach): Move handling of
+	range offset here.  This may need to move further.
+	* src/ssdiff.c (cb_diff_sheets_styles_2): From here.
+
 2012-12-27  Morten Welinder  <terra gnome org>
 
 	* src/ssdiff.c (diff_sheets): Compare styles too.
diff --git a/src/sheet-style.c b/src/sheet-style.c
index b425c95..e9abf2f 100644
--- a/src/sheet-style.c
+++ b/src/sheet-style.c
@@ -3017,6 +3017,12 @@ sheet_style_range_foreach (Sheet const *sheet, GnmRange const *r,
 
 	for (l = styles; l; l = l->next) {
 		GnmStyleRegion *sr = l->data;
+		if (r) {
+			sr->range.start.col += r->start.col;
+			sr->range.start.row += r->start.row;
+			sr->range.end.col += r->start.col;
+			sr->range.end.row += r->start.row;
+		}
 		func (NULL, sr, user_data);
 		gnm_style_region_free (sr);
 	}
diff --git a/src/ssdiff.c b/src/ssdiff.c
index bf52343..cdc9019 100644
--- a/src/ssdiff.c
+++ b/src/ssdiff.c
@@ -446,11 +446,6 @@ cb_diff_sheets_styles_2 (G_GNUC_UNUSED gpointer key,
 	if (gnm_style_equal (data->old_style, sr->style))
 		return;
 
-	/* sheet_style_range_foreach calls us with ranges that are relative
-	   to its input range.  Weird.  */
-	r.start.col += data->old_offset.col;
-	r.start.row += data->old_offset.row;
-
 	data->state->actions->style_changed (data->state, &r,
 					     data->old_style, sr->style);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]