From 505a51056017bf07e3ed68c23297103385cdc208 Mon Sep 17 00:00:00 2001
From: mh17 <mh17>
Date: Tue, 20 Apr 2010 12:00:37 +0000
Subject: [PATCH] fixed for styles glyph-align, unmarked-colinear and some
 other options

---
 src/include/ZMap/zmapStyle.h                  |  7 +++-
 src/zmapConfig/zmapConfigLoader.c             | 13 +++++-
 src/zmapFeature/zmapFeatureTypes.c            | 10 ++++-
 src/zmapFeature/zmapStyle.c                   |  5 ++-
 src/zmapFeature/zmapStyleUtils.c              |  4 +-
 src/zmapFeature/zmapStyle_I.h                 |  6 +--
 .../items/zmapWindowContainerFeatureSet.c     | 40 ++++++++++++++++++-
 .../items/zmapWindowContainerFeatureSet_I.h   | 13 +++---
 src/zmapWindow/zmapWindowColBump.c            |  7 ++--
 9 files changed, 83 insertions(+), 22 deletions(-)

diff --git a/src/include/ZMap/zmapStyle.h b/src/include/ZMap/zmapStyle.h
index c82bd06d0..cea6fac52 100755
--- a/src/include/ZMap/zmapStyle.h
+++ b/src/include/ZMap/zmapStyle.h
@@ -28,7 +28,7 @@
  * HISTORY:
  * Last edited: Jan 26 08:42 2010 (edgrif)
  * Created: Mon Feb 26 09:28:26 2007 (edgrif)
- * CVS info:   $Id: zmapStyle.h,v 1.55 2010-04-19 11:45:57 mh17 Exp $
+ * CVS info:   $Id: zmapStyle.h,v 1.56 2010-04-20 12:00:37 mh17 Exp $
  *-------------------------------------------------------------------
  */
 #ifndef ZMAP_STYLE_H
@@ -169,6 +169,7 @@ typedef enum
     STYLE_PROP_ALIGNMENT_PERFECT_COLOURS,
     STYLE_PROP_ALIGNMENT_COLINEAR_COLOURS,
     STYLE_PROP_ALIGNMENT_NONCOLINEAR_COLOURS,
+    STYLE_PROP_ALIGNMENT_UNMARKED_COLINEAR,
 
     STYLE_PROP_TRANSCRIPT_CDS_COLOURS,
 
@@ -265,7 +266,7 @@ typedef enum
 #define ZMAPSTYLE_PROPERTY_ALIGNMENT_PERFECT_COLOURS     "alignment-perfect-colours"
 #define ZMAPSTYLE_PROPERTY_ALIGNMENT_COLINEAR_COLOURS    "alignment-colinear-colours"
 #define ZMAPSTYLE_PROPERTY_ALIGNMENT_NONCOLINEAR_COLOURS "alignment-noncolinear-colours"
-#define ZMAPSTYLE_PROPERTY_ALIGNMENT_SHOW_UNMARKED_COLINEAR    "alignment-unmarked-colinear"
+#define ZMAPSTYLE_PROPERTY_ALIGNMENT_UNMARKED_COLINEAR    "alignment-unmarked-colinear"
 
 /* transcript properties */
 #define ZMAPSTYLE_PROPERTY_TRANSCRIPT_CDS_COLOURS "transcript-cds-colours"
@@ -485,6 +486,7 @@ ZMAP_ENUM_FROM_STRING_DEC(zMapStyleStr2BumpMode,     ZMapStyleBumpMode) ;
 ZMAP_ENUM_FROM_STRING_DEC(zMapStyleStr2GlyphStrand,     ZMapStyleGlyphStrand) ;
 ZMAP_ENUM_FROM_STRING_DEC(zMapStyleStr2SubFeature,     ZMapStyleSubFeature) ;
 ZMAP_ENUM_FROM_STRING_DEC(zMapStyleStr2GlyphAlign,     ZMapStyleGlyphAlign) ;
+ZMAP_ENUM_FROM_STRING_DEC(zMapStyleStr2BlixemType,     ZMapStyleBlixemType) ;
 
 /* Enum -> String function decs: const char *zMapStyleXXXXMode2ExactStr(ZMapStyleXXXXXMode mode);  */
 ZMAP_ENUM_AS_EXACT_STRING_DEC(zMapStyleMode2ExactStr,            ZMapStyleMode) ;
@@ -499,6 +501,7 @@ ZMAP_ENUM_AS_EXACT_STRING_DEC(zmapStyleBumpMode2ExactStr,     ZMapStyleBumpMode)
 ZMAP_ENUM_AS_EXACT_STRING_DEC(zmapStyleGlyphStrand2ExactStr,     ZMapStyleGlyphStrand) ;
 ZMAP_ENUM_AS_EXACT_STRING_DEC(zmapStyleSubFeature2ExactStr,     ZMapStyleSubFeature) ;
 ZMAP_ENUM_AS_EXACT_STRING_DEC(zmapStyleGlyphAlign2ExactStr,     ZMapStyleGlyphAlign) ;
+ZMAP_ENUM_AS_EXACT_STRING_DEC(zmapStyleBlixemType2ExactStr,     ZMapStyleBlixemType) ;
 
 
 ZMAP_ENUM_TO_SHORT_TEXT_DEC(zmapStyleBumpMode2ShortText, ZMapStyleBumpMode) ;
diff --git a/src/zmapConfig/zmapConfigLoader.c b/src/zmapConfig/zmapConfigLoader.c
index 1dc6fc356..4578bccc6 100644
--- a/src/zmapConfig/zmapConfigLoader.c
+++ b/src/zmapConfig/zmapConfigLoader.c
@@ -31,7 +31,7 @@
  * HISTORY:
  * Last edited: Mar  2 14:47 2010 (edgrif)
  * Created: Thu Sep 25 14:12:05 2008 (rds)
- * CVS info:   $Id: zmapConfigLoader.c,v 1.14 2010-04-19 11:00:39 mh17 Exp $
+ * CVS info:   $Id: zmapConfigLoader.c,v 1.15 2010-04-20 12:00:37 mh17 Exp $
  *-------------------------------------------------------------------
  */
 
@@ -910,6 +910,7 @@ static gpointer create_config_style()
       { ZMAPSTYLE_PROPERTY_FRAME2_COLOURS, FALSE, ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2COLOUR, {NULL} },
       { ZMAPSTYLE_PROPERTY_REV_COLOURS, FALSE, ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2COLOUR, {NULL} },
 
+      { ZMAPSTYLE_PROPERTY_DISPLAY_MODE, FALSE,  ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2ENUM, {(ZMapConfStr2EnumFunc)zMapStyleStr2ColDisplayState} },
       { ZMAPSTYLE_PROPERTY_BUMP_MODE, FALSE,  ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2ENUM, {(ZMapConfStr2EnumFunc)zMapStyleStr2BumpMode} },
       { ZMAPSTYLE_PROPERTY_DEFAULT_BUMP_MODE, FALSE,  ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2ENUM, {(ZMapConfStr2EnumFunc)zMapStyleStr2BumpMode} },
       { ZMAPSTYLE_PROPERTY_BUMP_SPACING, FALSE,  ZMAPCONF_DOUBLE, {FALSE}, ZMAPCONV_NONE, {NULL} },
@@ -962,10 +963,13 @@ static gpointer create_config_style()
       { ZMAPSTYLE_PROPERTY_ALIGNMENT_PARSE_GAPS,   FALSE, ZMAPCONF_BOOLEAN, {FALSE}, ZMAPCONV_NONE, {NULL} },
       { ZMAPSTYLE_PROPERTY_ALIGNMENT_SHOW_GAPS,   FALSE, ZMAPCONF_BOOLEAN, {FALSE}, ZMAPCONV_NONE, {NULL} },
       { ZMAPSTYLE_PROPERTY_ALIGNMENT_PFETCHABLE,   FALSE, ZMAPCONF_BOOLEAN, {FALSE}, ZMAPCONV_NONE, {NULL} },
+      { ZMAPSTYLE_PROPERTY_ALIGNMENT_BLIXEM,   FALSE, ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2ENUM, {(ZMapConfStr2EnumFunc) zMapStyleStr2BlixemType } },
       { ZMAPSTYLE_PROPERTY_ALIGNMENT_JOIN_ALIGN,   FALSE, ZMAPCONF_INT, {FALSE}, ZMAPCONV_NONE, {NULL} },
+      { ZMAPSTYLE_PROPERTY_ALIGNMENT_ALLOW_MISALIGN,   FALSE, ZMAPCONF_BOOLEAN, {FALSE}, ZMAPCONV_NONE, {NULL} },
       { ZMAPSTYLE_PROPERTY_ALIGNMENT_PERFECT_COLOURS,   FALSE, ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2COLOUR, {NULL} },
       { ZMAPSTYLE_PROPERTY_ALIGNMENT_COLINEAR_COLOURS,   FALSE, ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2COLOUR, {NULL} },
       { ZMAPSTYLE_PROPERTY_ALIGNMENT_NONCOLINEAR_COLOURS,   FALSE, ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2COLOUR, {NULL} },
+      { ZMAPSTYLE_PROPERTY_ALIGNMENT_UNMARKED_COLINEAR, FALSE,  ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2ENUM, {(ZMapConfStr2EnumFunc)zMapStyleStr2ColDisplayState} },
 
       { ZMAPSTYLE_PROPERTY_TRANSCRIPT_CDS_COLOURS,  FALSE, ZMAPCONF_STR, {FALSE}, ZMAPCONV_STR2COLOUR, {NULL} },
 
@@ -1032,6 +1036,8 @@ static ZMapConfigIniContextKeyEntry get_style_group_data(char **stanza_name, cha
     { ZMAPSTYLE_PROPERTY_FRAME2_COLOURS, G_TYPE_STRING, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_REV_COLOURS, G_TYPE_STRING, style_set_property, FALSE },
 
+    { ZMAPSTYLE_PROPERTY_DISPLAY_MODE, G_TYPE_STRING, style_set_property, FALSE },
+
     { ZMAPSTYLE_PROPERTY_BUMP_MODE, G_TYPE_STRING,  style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_DEFAULT_BUMP_MODE, G_TYPE_STRING,  style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_BUMP_SPACING, G_TYPE_DOUBLE,  style_set_property, FALSE },
@@ -1070,7 +1076,7 @@ static ZMapConfigIniContextKeyEntry get_style_group_data(char **stanza_name, cha
     { ZMAPSTYLE_PROPERTY_GLYPH_ALT_COLOURS,   G_TYPE_STRING, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_GLYPH_THRESHOLD,   G_TYPE_INT, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_GLYPH_STRAND,   G_TYPE_BOOLEAN, style_set_property, FALSE },
-    { ZMAPSTYLE_PROPERTY_GLYPH_ALIGN,   G_TYPE_INT, style_set_property, FALSE },
+    { ZMAPSTYLE_PROPERTY_GLYPH_ALIGN,   G_TYPE_STRING, style_set_property, FALSE },
 
 
     { ZMAPSTYLE_PROPERTY_GRAPH_MODE,   G_TYPE_STRING, style_set_property, FALSE },
@@ -1080,10 +1086,13 @@ static ZMapConfigIniContextKeyEntry get_style_group_data(char **stanza_name, cha
     { ZMAPSTYLE_PROPERTY_ALIGNMENT_PARSE_GAPS,   G_TYPE_BOOLEAN, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_ALIGNMENT_SHOW_GAPS,   G_TYPE_BOOLEAN, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_ALIGNMENT_PFETCHABLE,   G_TYPE_BOOLEAN, style_set_property, FALSE },
+    { ZMAPSTYLE_PROPERTY_ALIGNMENT_BLIXEM,   G_TYPE_STRING, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_ALIGNMENT_JOIN_ALIGN,   G_TYPE_INT, style_set_property, FALSE },
+    { ZMAPSTYLE_PROPERTY_ALIGNMENT_ALLOW_MISALIGN,   G_TYPE_BOOLEAN, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_ALIGNMENT_PERFECT_COLOURS,   G_TYPE_STRING, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_ALIGNMENT_COLINEAR_COLOURS,   G_TYPE_STRING, style_set_property, FALSE },
     { ZMAPSTYLE_PROPERTY_ALIGNMENT_NONCOLINEAR_COLOURS,   G_TYPE_STRING, style_set_property, FALSE },
+    { ZMAPSTYLE_PROPERTY_ALIGNMENT_UNMARKED_COLINEAR,   G_TYPE_STRING, style_set_property, FALSE },
 
     { ZMAPSTYLE_PROPERTY_TRANSCRIPT_CDS_COLOURS,  G_TYPE_STRING, style_set_property, FALSE },
 
diff --git a/src/zmapFeature/zmapFeatureTypes.c b/src/zmapFeature/zmapFeatureTypes.c
index 7efbb61ca..a82e15581 100755
--- a/src/zmapFeature/zmapFeatureTypes.c
+++ b/src/zmapFeature/zmapFeatureTypes.c
@@ -29,7 +29,7 @@
  * HISTORY:
  * Last edited: Jan 26 12:02 2010 (edgrif)
  * Created: Tue Dec 14 13:15:11 2004 (edgrif)
- * CVS info:   $Id: zmapFeatureTypes.c,v 1.94 2010-04-19 11:00:39 mh17 Exp $
+ * CVS info:   $Id: zmapFeatureTypes.c,v 1.95 2010-04-20 12:00:37 mh17 Exp $
  *-------------------------------------------------------------------
  */
 
@@ -368,6 +368,14 @@ ZMapStyleBumpMode zMapStyleGetDefaultBumpMode(ZMapFeatureTypeStyle style)
 
 }
 
+gboolean zMapStyleGetUnmarked(ZMapFeatureTypeStyle style)
+{
+      gboolean x = TRUE;      // spec says default to true
+
+      if(zMapStyleIsPropertySetId(style,STYLE_PROP_ALIGNMENT_UNMARKED_COLINEAR))
+        x = style->mode_data.alignment.unmarked_colinear;
+      return(x);
+}
 
 
 void zMapStyleSetParent(ZMapFeatureTypeStyle style, char *parent_name)
diff --git a/src/zmapFeature/zmapStyle.c b/src/zmapFeature/zmapStyle.c
index b88eac2e1..761a3e62a 100755
--- a/src/zmapFeature/zmapStyle.c
+++ b/src/zmapFeature/zmapStyle.c
@@ -28,7 +28,7 @@
  *
  * Exported functions: See ZMap/zmapStyle.h
  *
- * CVS info:   $Id: zmapStyle.c,v 1.47 2010-04-19 11:45:57 mh17 Exp $
+ * CVS info:   $Id: zmapStyle.c,v 1.48 2010-04-20 12:00:37 mh17 Exp $
  *-------------------------------------------------------------------
  */
 
@@ -271,6 +271,9 @@ ZMapStyleParamStruct zmapStyleParams_G[_STYLE_PROP_N_ITEMS] =
     { STYLE_PROP_ALIGNMENT_NONCOLINEAR_COLOURS, STYLE_PARAM_TYPE_COLOUR, ZMAPSTYLE_PROPERTY_ALIGNMENT_NONCOLINEAR_COLOURS,
             "noncolinear alignment indicator colour", "Colours used to show two alignments have exactly contiguous coords.",
             offsetof(zmapFeatureTypeStyleStruct, mode_data.alignment.noncolinear)  ,ZMAPSTYLE_MODE_ALIGNMENT },
+    { STYLE_PROP_ALIGNMENT_UNMARKED_COLINEAR, STYLE_PARAM_TYPE_COLDISP, ZMAPSTYLE_PROPERTY_ALIGNMENT_UNMARKED_COLINEAR,
+            "paint colinear lines when unmarked", "paint colinear lines when unmarked ?",
+            offsetof(zmapFeatureTypeStyleStruct, mode_data.alignment.unmarked_colinear), ZMAPSTYLE_MODE_ALIGNMENT },
 
 
     { STYLE_PROP_TRANSCRIPT_CDS_COLOURS, STYLE_PARAM_TYPE_COLOUR, ZMAPSTYLE_PROPERTY_TRANSCRIPT_CDS_COLOURS,
diff --git a/src/zmapFeature/zmapStyleUtils.c b/src/zmapFeature/zmapStyleUtils.c
index 20ca1fd53..f52516485 100755
--- a/src/zmapFeature/zmapStyleUtils.c
+++ b/src/zmapFeature/zmapStyleUtils.c
@@ -30,7 +30,7 @@
  * HISTORY:
  * Last edited: Jul 29 09:53 2009 (edgrif)
  * Created: Thu Oct 30 10:24:35 2008 (edgrif)
- * CVS info:   $Id: zmapStyleUtils.c,v 1.16 2010-04-19 11:00:39 mh17 Exp $
+ * CVS info:   $Id: zmapStyleUtils.c,v 1.17 2010-04-20 12:00:37 mh17 Exp $
  *-------------------------------------------------------------------
  */
 
@@ -125,6 +125,7 @@ ZMAP_ENUM_FROM_STRING_FUNC(zMapStyleStr2BumpMode,        ZMapStyleBumpMode,
 ZMAP_ENUM_FROM_STRING_FUNC(zMapStyleStr2GlyphStrand,     ZMapStyleGlyphStrand,         ZMAPSTYLE_GLYPH_STRAND_INVALID, ZMAP_STYLE_GLYPH_STRAND_LIST, , );
 ZMAP_ENUM_FROM_STRING_FUNC(zMapStyleStr2SubFeature,     ZMapStyleSubFeature,         ZMAPSTYLE_SUB_FEATURE_INVALID, ZMAP_STYLE_SUB_FEATURE_LIST, , );
 ZMAP_ENUM_FROM_STRING_FUNC(zMapStyleStr2GlyphAlign,     ZMapStyleGlyphAlign,         ZMAPSTYLE_GLYPH_ALIGN_INVALID, ZMAP_STYLE_GLYPH_ALIGN_LIST, , );
+ZMAP_ENUM_FROM_STRING_FUNC(zMapStyleStr2BlixemType,     ZMapStyleBlixemType,         ZMAPSTYLE_BLIXEM_INVALID, ZMAP_STYLE_BLIXEM_LIST, , );
 
 
 
@@ -149,6 +150,7 @@ ZMAP_ENUM_AS_EXACT_STRING_FUNC(zmapStyleBumpMode2ExactStr,     ZMapStyleBumpMode
 ZMAP_ENUM_AS_EXACT_STRING_FUNC(zmapStyleGlyphStrand2ExactStr,     ZMapStyleGlyphStrand,        ZMAP_STYLE_GLYPH_STRAND_LIST);
 ZMAP_ENUM_AS_EXACT_STRING_FUNC(zmapStyleSubFeature2ExactStr,     ZMapStyleSubFeature,        ZMAP_STYLE_SUB_FEATURE_LIST);
 ZMAP_ENUM_AS_EXACT_STRING_FUNC(zmapStyleGlyphAlign2ExactStr,     ZMapStyleGlyphAlign,        ZMAP_STYLE_GLYPH_ALIGN_LIST);
+ZMAP_ENUM_AS_EXACT_STRING_FUNC(zmapStyleBlixemType2ExactStr,     ZMapStyleBlixemType,        ZMAP_STYLE_BLIXEM_LIST);
 
 
 /* Enum -> Short Text functions, these functions convert the enums to their corresponding short
diff --git a/src/zmapFeature/zmapStyle_I.h b/src/zmapFeature/zmapStyle_I.h
index 2d2346e9c..bc9337795 100755
--- a/src/zmapFeature/zmapStyle_I.h
+++ b/src/zmapFeature/zmapStyle_I.h
@@ -28,7 +28,7 @@
  * HISTORY:
  * Last edited: Jul 29 09:43 2009 (edgrif)
  * Created: Mon Feb 26 09:13:30 2007 (edgrif)
- * CVS info:   $Id: zmapStyle_I.h,v 1.21 2010-04-19 11:00:39 mh17 Exp $
+ * CVS info:   $Id: zmapStyle_I.h,v 1.22 2010-04-20 12:00:37 mh17 Exp $
  *-------------------------------------------------------------------
  */
 
@@ -272,9 +272,7 @@ typedef struct
    ZMapStyleFullColourStruct colinear ;
    ZMapStyleFullColourStruct noncolinear ;
 
-   /*! glyph type and colours for markimng incomplete ends */
-//   ZMapStyleFullColourStruct incomplete_glyph_colour ;
-//   ZMapStyleGlyphShape incomplete_glyph_type;
+   ZMapStyleColumnDisplayState unmarked_colinear;      /* paint colinear lines even if not marked */
 
    gboolean pfetchable;			/* TRUE => alignments have pfetch entries. */
    gboolean parse_gaps;
diff --git a/src/zmapWindow/items/zmapWindowContainerFeatureSet.c b/src/zmapWindow/items/zmapWindowContainerFeatureSet.c
index a891f69d6..5ff7488b9 100755
--- a/src/zmapWindow/items/zmapWindowContainerFeatureSet.c
+++ b/src/zmapWindow/items/zmapWindowContainerFeatureSet.c
@@ -29,7 +29,7 @@
  * HISTORY:
  * Last edited: Mar 19 13:42 2010 (edgrif)
  * Created: Mon Jul 30 13:09:33 2007 (rds)
- * CVS info:   $Id: zmapWindowContainerFeatureSet.c,v 1.24 2010-04-15 11:19:04 mh17 Exp $
+ * CVS info:   $Id: zmapWindowContainerFeatureSet.c,v 1.25 2010-04-20 12:00:38 mh17 Exp $
  *-------------------------------------------------------------------
  */
 #include <string.h>		/* memset */
@@ -53,6 +53,7 @@ enum
     ITEM_FEATURE_SET_VISIBLE,
     ITEM_FEATURE_SET_BUMP_MODE,
     ITEM_FEATURE_SET_DEFAULT_BUMP_MODE,
+    ITEM_FEATURE_SET_BUMP_UNMARKED,
     ITEM_FEATURE_SET_FRAME_MODE,
     ITEM_FEATURE_SET_SHOW_WHEN_EMPTY,
     ITEM_FEATURE_SET_DEFERRED,
@@ -811,6 +812,27 @@ ZMapStyleBumpMode zmapWindowContainerFeatureSetGetDefaultBumpMode(ZMapWindowCont
   return mode;
 }
 
+
+ZMapStyleBumpMode zmapWindowContainerFeatureSetGetBumpUnmarked(ZMapWindowContainerFeatureSet container_set)
+{
+  gboolean x = TRUE;
+
+  container_set->settings.bump_unmarked = ZMAPSTYLE_COLDISPLAY_INVALID;
+
+      // this gets the data from a lot of styles
+      // perhaps it should be assigned when the property is set??
+  g_object_get(G_OBJECT(container_set),
+             ZMAPSTYLE_PROPERTY_ALIGNMENT_UNMARKED_COLINEAR, &(container_set->settings.bump_unmarked),
+             NULL);
+
+  if(container_set->settings.bump_unmarked &&
+            container_set->settings.bump_unmarked != ZMAPSTYLE_COLDISPLAY_SHOW)
+      x = FALSE;
+
+  return x;
+}
+
+
 /*!
  * \brief reset the bump modes
  *
@@ -1179,7 +1201,17 @@ static void zmap_window_item_feature_set_class_init(ZMapWindowContainerFeatureSe
 						    ZMAPBUMP_END,
 						    ZMAPBUMP_INVALID,
 						    ZMAP_PARAM_STATIC_RO));
-  /* bump default */
+  /* bump unmarked */
+  g_object_class_install_property(gobject_class,
+                          ITEM_FEATURE_SET_BUMP_UNMARKED,
+                          g_param_spec_uint(ZMAPSTYLE_PROPERTY_ALIGNMENT_UNMARKED_COLINEAR,
+                                        ZMAPSTYLE_PROPERTY_ALIGNMENT_UNMARKED_COLINEAR,
+                                        "[ hide | show_hide | show ]",
+                                        ZMAPSTYLE_COLDISPLAY_INVALID,
+                                        ZMAPSTYLE_COLDISPLAY_SHOW,
+                                        ZMAPSTYLE_COLDISPLAY_INVALID,
+                                        ZMAP_PARAM_STATIC_RO));
+  /* join aligns */
   g_object_class_install_property(gobject_class,
 				  ITEM_FEATURE_SET_JOIN_ALIGNS,
 				  g_param_spec_uint(ZMAPSTYLE_PROPERTY_ALIGNMENT_JOIN_ALIGN,
@@ -1307,6 +1339,7 @@ static void zmap_window_item_feature_set_get_property(GObject    *gobject,
     case ITEM_FEATURE_SET_VISIBLE:
     case ITEM_FEATURE_SET_BUMP_MODE:
     case ITEM_FEATURE_SET_DEFAULT_BUMP_MODE:
+    case ITEM_FEATURE_SET_BUMP_UNMARKED:
     case ITEM_FEATURE_SET_FRAME_MODE:
     case ITEM_FEATURE_SET_SHOW_WHEN_EMPTY:
     case ITEM_FEATURE_SET_DEFERRED:
@@ -1501,6 +1534,9 @@ static void extract_value_from_style_table(gpointer key, gpointer value, gpointe
 	break;
       }
 
+    case ITEM_FEATURE_SET_BUMP_UNMARKED:
+        if(zMapStyleGetMode(style) != ZMAPSTYLE_MODE_ALIGNMENT)
+          break;
     case ITEM_FEATURE_SET_VISIBLE:
       {
 	guint style_version = 0, current;
diff --git a/src/zmapWindow/items/zmapWindowContainerFeatureSet_I.h b/src/zmapWindow/items/zmapWindowContainerFeatureSet_I.h
index 5be2fc933..aeb238ec8 100755
--- a/src/zmapWindow/items/zmapWindowContainerFeatureSet_I.h
+++ b/src/zmapWindow/items/zmapWindowContainerFeatureSet_I.h
@@ -6,12 +6,12 @@
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
@@ -23,13 +23,13 @@
  * 	Ed Griffiths (Sanger Institute, UK) edgrif@sanger.ac.uk,
  *      Roy Storey (Sanger Institute, UK) rds@sanger.ac.uk
  *
- * Description: 
+ * Description:
  *
  * Exported functions: See XXXXXXXXXXXXX.h
  * HISTORY:
  * Last edited: Oct 27 10:46 2009 (edgrif)
  * Created: Fri Feb  6 11:49:03 2009 (rds)
- * CVS info:   $Id: zmapWindowContainerFeatureSet_I.h,v 1.8 2010-03-04 15:12:10 mh17 Exp $
+ * CVS info:   $Id: zmapWindowContainerFeatureSet_I.h,v 1.9 2010-04-20 12:00:38 mh17 Exp $
  *-------------------------------------------------------------------
  */
 
@@ -53,7 +53,7 @@ typedef struct _zmapWindowContainerFeatureSetStruct
 
   /* Empty columns are only hidden ATM and as they have no
    * ZMapFeatureSet removing them from the FToI hash becomes difficult
-   * without the align, block and set ids. No doubt it'l be true for 
+   * without the align, block and set ids. No doubt it'l be true for
    * empty block and align containers too at some point. */
 
   GQuark      align_id;
@@ -68,7 +68,7 @@ typedef struct _zmapWindowContainerFeatureSetStruct
 
   /* These fields are used for some of the more exotic column bumping. */
   gboolean    hidden_bump_features ; /* Features were hidden because they
-				      * are out of the marked range. */ 
+				      * are out of the marked range. */
 
   struct
   {
@@ -78,6 +78,7 @@ typedef struct _zmapWindowContainerFeatureSetStruct
     gboolean                    frame_specific;
     gboolean                    strand_specific;
     gboolean                    show_reverse_strand;
+    ZMapStyleColumnDisplayState bump_unmarked;
     ZMapStyle3FrameMode         frame_mode;
     ZMapStyleColumnDisplayState display_state;
     ZMapStyleBumpMode           bump_mode;
diff --git a/src/zmapWindow/zmapWindowColBump.c b/src/zmapWindow/zmapWindowColBump.c
index b44089da8..7514a109d 100755
--- a/src/zmapWindow/zmapWindowColBump.c
+++ b/src/zmapWindow/zmapWindowColBump.c
@@ -29,7 +29,7 @@
  * HISTORY:
  * Last edited: Mar  4 12:11 2010 (edgrif)
  * Created: Tue Sep  4 10:52:09 2007 (edgrif)
- * CVS info:   $Id: zmapWindowColBump.c,v 1.69 2010-04-15 11:19:03 mh17 Exp $
+ * CVS info:   $Id: zmapWindowColBump.c,v 1.70 2010-04-20 12:00:37 mh17 Exp $
  *-------------------------------------------------------------------
  */
 
@@ -377,7 +377,8 @@ void zmapWindowColumnBumpRange(FooCanvasItem *bump_item, ZMapStyleBumpMode bump_
   BumpColStruct bump_data = {NULL} ;
   FooCanvasGroup *column_features ;
   ZMapWindowContainerFeatureSet container = NULL;
-  BumpPropertiesStruct bump_properties = {NULL};
+  ZMapWindowContainerFeatureSetClass container_class = NULL;
+    BumpPropertiesStruct bump_properties = {NULL};
   ZMapStyleBumpMode historic_bump_mode;
   ZMapWindow window;
   gboolean column = FALSE ;
@@ -724,7 +725,7 @@ void zmapWindowColumnBumpRange(FooCanvasItem *bump_item, ZMapStyleBumpMode bump_
 
 
 	    /* TRY JUST ADDING GAPS  IF A MARK IS SET */
-          if (mark_set && bump_mode != ZMAPBUMP_NAME_INTERLEAVE)
+          if ((mark_set || zmapWindowContainerFeatureSetGetBumpUnmarked(container)) && bump_mode != ZMAPBUMP_NAME_INTERLEAVE)
 	      {
 		/* NOTE THERE IS AN ISSUE HERE...WE SHOULD ADD COLINEAR STUFF FOR ALIGN FEATURES
 		 * THIS IS NOT EXPLICIT IN THE CODE WHICH IS NOT CORRECT....NEED TO THINK THIS
-- 
GitLab