--- AUTHORS	2005-09-25 10:37:00.000000000 +0000
+++ AUTHORS.new	2005-11-21 00:57:01.000000000 +0000
@@ -2,6 +2,9 @@
 Maintainers of GNU Software" (maintain.texi), the section called
 "Recording Changes".
 
+Malcolm Still:
+New MenuStyle option TrianglesUseFore.
+
 Evgeny Stambulchik:
 Patch to improve look of "BorderStyle TiledPixmap" windows.
 
--- fvwm/fvwm.1.in	2005-11-11 19:16:22.000000000 +0000
+++ fvwm/fvwm.1.in.new	2005-11-21 02:15:48.000000000 +0000
@@ -2861,7 +2861,8 @@
 VerticalTitleSpacing,
 AutomaticHotkeys / AutomaticHotkeysOff,
 MouseWheel,
-ScrollOffPage / !ScrollOffPage.
+ScrollOffPage / !ScrollOffPage,
+TrianglesUseFore / !TrianglesUseFore.
 
 In the above list some options are listed as option pairs or
 triples with a '/' in between.  These options exclude each other.
@@ -3421,6 +3422,12 @@
 .I !ScrollOffPage
 disables this behaviour.
 
+.I TrianglesUseFore
+draws sub menu triangles with the foreground color of the menu colorset 
+(normally drawn with the hilight color).
+.I !TrianglesUseFore
+disables this behaivour.
+
 Examples:
 .EX
 MenuStyle * Mwm
--- fvwm/menuitem.c	2003-06-29 19:53:23.000000000 +0000
+++ fvwm/menuitem.c.new	2005-11-21 00:52:19.000000000 +0000
@@ -715,22 +715,51 @@
 		    is_item_selected)
 		{
 			/* triangle is in hilighted area */
-			tmp_gc = gcs.hilight_gc;
+			if(ST_TRIANGLES_USE_FORE(ms))
+			{
+				tmp_gc = gcs.fore_gc;
+			}
+			else
+			{
+				tmp_gc = gcs.hilight_gc;
+			}
 		}
 		else
 		{
 			/* triangle is in unhilighted area */
-			tmp_gc = off_gcs.hilight_gc;
+			if(ST_TRIANGLES_USE_FORE(ms))
+			{
+				tmp_gc = off_gcs.fore_gc;
+			}
+			else
+			{
+				tmp_gc = off_gcs.hilight_gc;
+			}
 		}
 		y = y_offset + (y_height - MENU_TRIANGLE_HEIGHT +
 				relief_thickness) / 2;
-		DrawTrianglePattern(
-			dpy, mpip->w, gcs.hilight_gc, gcs.shadow_gc, tmp_gc,
-			MDIM_TRIANGLE_X_OFFSET(*dim), y, MENU_TRIANGLE_WIDTH,
-			MENU_TRIANGLE_HEIGHT, 0,
-			(mpip->flags.is_left_triangle) ? 'l' : 'r',
-			ST_HAS_TRIANGLE_RELIEF(ms),
-			!ST_HAS_TRIANGLE_RELIEF(ms), is_item_selected);
+
+		if(ST_TRIANGLES_USE_FORE(ms))
+		{
+			DrawTrianglePattern(
+				dpy, mpip->w, tmp_gc, tmp_gc, tmp_gc,
+				MDIM_TRIANGLE_X_OFFSET(*dim), y, MENU_TRIANGLE_WIDTH,
+				MENU_TRIANGLE_HEIGHT, 0,
+				(mpip->flags.is_left_triangle) ? 'l' : 'r',
+				ST_HAS_TRIANGLE_RELIEF(ms),
+				!ST_HAS_TRIANGLE_RELIEF(ms), is_item_selected);
+	
+		}
+		else
+		{
+			DrawTrianglePattern(
+				dpy, mpip->w, gcs.hilight_gc, gcs.shadow_gc, tmp_gc,
+				MDIM_TRIANGLE_X_OFFSET(*dim), y, MENU_TRIANGLE_WIDTH,
+				MENU_TRIANGLE_HEIGHT, 0,
+				(mpip->flags.is_left_triangle) ? 'l' : 'r',
+				ST_HAS_TRIANGLE_RELIEF(ms),
+				!ST_HAS_TRIANGLE_RELIEF(ms), is_item_selected);
+		}
 	}
 
 	/*
--- fvwm/menustyle.c	2005-10-25 07:53:14.000000000 +0000
+++ fvwm/menustyle.c.new	2005-11-21 00:33:13.000000000 +0000
@@ -394,6 +394,7 @@
 		"PopupActiveArea",
 		"PopupIgnore", "PopupClose",
 		"MouseWheel", "ScrollOffPage",
+		"TrianglesUseFore",
 		NULL
 	};
 
@@ -1401,6 +1402,10 @@
 		case 57: /* ScrollOffPage */
 	        	ST_SCROLL_OFF_PAGE(tmpms) = on;
 			break;
+
+		case 58: /* TrianglesUseFore */
+			ST_TRIANGLES_USE_FORE(tmpms) = on;
+			break;
 #if 0
 		case 99: /* PositionHints */
 			/* to be implemented */
@@ -1619,6 +1624,8 @@
 	ST_MOUSE_WHEEL(destms) = ST_MOUSE_WHEEL(origms);
 	/* ScrollOffPage */
 	ST_SCROLL_OFF_PAGE(destms) = ST_SCROLL_OFF_PAGE(origms);
+	/* TrianglesUseFore */
+	ST_TRIANGLES_USE_FORE(destms) = ST_TRIANGLES_USE_FORE(origms);
 
 	menustyle_update(destms);
 
--- fvwm/menustyle.h	2005-09-22 05:17:47.000000000 +0000
+++ fvwm/menustyle.h.new	2005-11-21 00:36:47.000000000 +0000
@@ -48,6 +48,8 @@
 	((m)->s->ms->look.flags.is_item_relief_reversed)
 #define ST_USING_DEFAULT_FONT(s)      ((s)->look.flags.using_default_font)
 #define MST_USING_DEFAULT_FONT(m)     ((m)->s->ms->look.flags.using_default_font)
+#define ST_TRIANGLES_USE_FORE(s)      ((s)->look.flags.triangles_use_fore)
+#define MST_TRIANGLES_USE_FORE(m)     ((m)->s->ms->look.flags.triangles_use_fore)
 #define ST_RELIEF_THICKNESS(s)        ((s)->look.ReliefThickness)
 #define MST_RELIEF_THICKNESS(m)       ((m)->s->ms->look.ReliefThickness)
 #define ST_TITLE_UNDERLINES(s)        ((s)->look.TitleUnderlines)
@@ -243,6 +245,7 @@
 		unsigned has_greyed_cset : 1;
 		unsigned is_item_relief_reversed : 1;
 		unsigned using_default_font : 1;
+		unsigned triangles_use_fore : 1;
 	} flags;
 	unsigned char ReliefThickness;
 	unsigned char TitleUnderlines;
--- NEWS	2005-11-11 19:16:22.000000000 +0000
+++ NEWS.new	2005-11-21 00:55:19.000000000 +0000
@@ -17,6 +17,7 @@
    - MenuStyle pairs can be negated by prefixing '!'.
    - New generic tabbing module - FvwmTabs.
    - New Style option: EWMHIgnoreWindowType.
+   - New MenuStyle option TrianglesUseFore.
 
 * Bug Fixes:
 
