[gnumeric] xls: fix direction flipping for lines and arrows export.



commit 6d8c2cf44298d671a2bc63d851eabfcd6d538749
Author: Morten Welinder <terra gnome org>
Date:   Thu Oct 15 11:15:25 2009 -0400

    xls: fix direction flipping for lines and arrows export.

 plugins/excel/ChangeLog        |    5 +++++
 plugins/excel/ms-excel-write.c |   11 +++++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/plugins/excel/ChangeLog b/plugins/excel/ChangeLog
index 10e5aeb..a982ec2 100644
--- a/plugins/excel/ChangeLog
+++ b/plugins/excel/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-15  Morten Welinder  <terra gnome org>
+
+	* ms-excel-write.c (excel_write_line_v8): Fix handling of
+	direction.
+
 2009-10-14  Morten Welinder  <terra gnome org>
 
 	* ms-escher.c (ms_escher_read_OPT): Don't arbitrarily add 1 to
diff --git a/plugins/excel/ms-excel-write.c b/plugins/excel/ms-excel-write.c
index 6734ca6..6624f3d 100644
--- a/plugins/excel/ms-excel-write.c
+++ b/plugins/excel/ms-excel-write.c
@@ -4559,6 +4559,8 @@ excel_write_line_v8 (ExcelWriteSheet *esheet, SheetObject *so)
 	guint8 zero[4] = { 0, 0, 0, 0 };
 	GOStyle *style;
 	GOArrow *start_arrow, *end_arrow;
+	SheetObjectAnchor const *anchor = sheet_object_get_anchor (so);
+	guint32 spflags;
 
 	g_object_get (so,
 		      "start-arrow", &start_arrow,
@@ -4569,7 +4571,12 @@ excel_write_line_v8 (ExcelWriteSheet *esheet, SheetObject *so)
 
 	spmark = ms_escher_spcontainer_start (escher);
 
-	ms_escher_sp (escher, id, shape, 0x00000a00); /* fHaveAnchor+fHaveSpt */
+	spflags = 0x00000a00; /* fHaveAnchor+fHaveSpt */
+	if ((anchor->base.direction & GOD_ANCHOR_DIR_H_MASK) == 0)
+		spflags |= 0x40;
+	if ((anchor->base.direction & GOD_ANCHOR_DIR_V_MASK) == 0)
+		spflags |= 0x80;
+	ms_escher_sp (escher, id, shape, spflags);
 
 	optmark = ms_escher_opt_start (escher);
 	extra = g_string_new (NULL);
@@ -4605,7 +4612,7 @@ excel_write_line_v8 (ExcelWriteSheet *esheet, SheetObject *so)
 	ms_escher_opt_end (escher, optmark);
 	g_string_free (extra, TRUE);
 
-	ms_escher_clientanchor (escher, sheet_object_get_anchor (so));
+	ms_escher_clientanchor (escher, anchor);
 
 	ms_escher_clientdata (escher);
 



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