[gnumeric] 2021-01-06 Andreas J. Guelzow <aguelzow pyrshep ca>



commit 96abd06b8a826f64f5b121a0d9780e089b7e48a2
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date:   Wed Jan 6 19:58:32 2021 -0700

    2021-01-06 Andreas J. Guelzow <aguelzow pyrshep ca>
    
            * openoffice-read.c (odf_apply_ooo_table_config): we can only handle splitmode == 2.
            Do not confuse any others with frozen panes.

 NEWS                                 |  4 ++++
 plugins/openoffice/ChangeLog         |  5 +++++
 plugins/openoffice/openoffice-read.c | 20 ++++++++++++++------
 3 files changed, 23 insertions(+), 6 deletions(-)
---
diff --git a/NEWS b/NEWS
index 4416f93be..5f68abd42 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,9 @@
 Gnumeric 1.12.49
 
+Andreas:
+       * Do not try to turn all of LibreOffice's SplitModes into frozen
+       panes [file of #557]
+
 Jean:
        * Fix graph size issue when the graph is in its own sheet. [#516]
 
diff --git a/plugins/openoffice/ChangeLog b/plugins/openoffice/ChangeLog
index ccc86379d..6f0d4d953 100644
--- a/plugins/openoffice/ChangeLog
+++ b/plugins/openoffice/ChangeLog
@@ -1,3 +1,8 @@
+2021-01-06 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+       * openoffice-read.c (odf_apply_ooo_table_config): we can only handle splitmode == 2.
+       Do not confuse any others with frozen panes.
+
 2020-08-30  Morten Welinder  <terra gnome org>
 
        * openoffice-write.c (odf_store_this_named_style): Handle the same
diff --git a/plugins/openoffice/openoffice-read.c b/plugins/openoffice/openoffice-read.c
index 3a4af531a..f2ada1afa 100644
--- a/plugins/openoffice/openoffice-read.c
+++ b/plugins/openoffice/openoffice-read.c
@@ -11725,13 +11725,21 @@ odf_apply_ooo_table_config (char const *key, GValue *val, OOParseState *state)
                        if (item != NULL && G_VALUE_HOLDS(item, G_TYPE_INT))
                                hsm = g_value_get_int (item);
 
+                       /* We are not implementing SplitMode == 1 */
+                       if (hsm != 2) hsm = 0;
+                       if (vsm != 2) vsm = 0;
+
                        if (vsm > 0 || hsm > 0)  {
-                               item = g_hash_table_lookup (hash, "VerticalSplitPosition");
-                               if (item != NULL && G_VALUE_HOLDS(item, G_TYPE_INT))
-                                       vsp = g_value_get_int (item);
-                               item = g_hash_table_lookup (hash, "HorizontalSplitPosition");
-                               if (item != NULL && G_VALUE_HOLDS(item, G_TYPE_INT))
-                                       hsp = g_value_get_int (item);
+                               if (vsm > 0) {
+                                       item = g_hash_table_lookup (hash, "VerticalSplitPosition");
+                                       if (item != NULL && G_VALUE_HOLDS(item, G_TYPE_INT))
+                                               vsp = g_value_get_int (item);
+                               } else vsp = 0;
+                               if (hsm > 0) {
+                                       item = g_hash_table_lookup (hash, "HorizontalSplitPosition");
+                                       if (item != NULL && G_VALUE_HOLDS(item, G_TYPE_INT))
+                                               hsp = g_value_get_int (item);
+                               } else hsp = 0;
                                if (vsp > 0 || hsp > 0) {
                                        GnmCellPos fpos = {0, 0};
                                        pos.col = hsp;


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