diff --unified --recursive --text fvwm-2.6.9/doc/commands/MenuStyle.xml fvwm-patched/doc/commands/MenuStyle.xml --- fvwm-2.6.9/doc/commands/MenuStyle.xml 2016-10-15 08:51:45.000000000 -0600 +++ fvwm-patched/doc/commands/MenuStyle.xml 2020-08-21 15:51:37.721036428 -0600 @@ -58,7 +58,7 @@ PopupOffset, TitleWarp / !TitleWarp, TitleUnderlines0 / TitleUnderlines1 / TitleUnderlines2, -SeparatorsLong / SeparatorsShort, +SeparatorsLong / SeparatorsShort / FlatSeparators, TrianglesSolid / TrianglesRelief, PopupImmediately / PopupDelayed, PopdownImmediately / PopdownDelayed, @@ -436,6 +436,11 @@ few pixels to the edges of the menu. + +changes the separators so that they are a single pixel thick and +colored the same as the text. + + and affect how the small triangles for sub menus is drawn. Solid diff --unified --recursive --text fvwm-2.6.9/fvwm/menuitem.c fvwm-patched/fvwm/menuitem.c --- fvwm-2.6.9/fvwm/menuitem.c 2018-05-26 05:35:26.000000000 -0600 +++ fvwm-patched/fvwm/menuitem.c 2020-08-21 15:51:37.721036428 -0600 @@ -81,10 +81,14 @@ * */ static void draw_separator( - Window w, GC TopGC, GC BottomGC, int x1, int y, int x2) + Window w, GC TopGC, GC BottomGC, GC ForeGC, int x1, int y, int x2, + Bool do_flat_separators) { XDrawLine(dpy, w, TopGC , x1, y, x2, y); - XDrawLine(dpy, w, BottomGC, x1-1, y+1, x2+1, y+1); + if (!do_flat_separators) + { + XDrawLine(dpy, w, BottomGC, x1-1, y+1, x2+1, y+1); + } return; } @@ -380,6 +384,7 @@ /*Pixel fg, fgsh;*/ int relief_thickness = ST_RELIEF_THICKNESS(ms); Bool is_item_selected; + Bool do_flat_separators; Bool item_cleared = False; Bool xft_clear = False; Bool empty_inter = False; @@ -598,6 +603,8 @@ * Draw the item itself. */ + do_flat_separators = ST_DO_FLAT_SEPARATOR(ms); + /* Calculate the separator offsets. */ if (ST_HAS_LONG_SEPARATORS(ms)) { @@ -618,9 +625,9 @@ { /* It's a separator. */ draw_separator( - mpip->w, gcs.shadow_gc, gcs.hilight_gc, sx1, - y_offset + y_height - MENU_SEPARATOR_HEIGHT, - sx2); + mpip->w, gcs.shadow_gc, gcs.hilight_gc, gcs.fore_gc, + sx1, y_offset + y_height - MENU_SEPARATOR_HEIGHT, + sx2, do_flat_separators); /* Nothing else to do. */ } return; @@ -660,8 +667,8 @@ if (sx1 < sx2) { draw_separator( - mpip->w, gcs.shadow_gc, gcs.hilight_gc, - sx1, y, sx2); + mpip->w, gcs.shadow_gc, gcs.hilight_gc, gcs.fore_gc, + sx1, y, sx2, do_flat_separators); } } /* Underline the title. */ @@ -674,8 +681,8 @@ { y = y_offset + y_height - MENU_SEPARATOR_HEIGHT; draw_separator( - mpip->w, gcs.shadow_gc, gcs.hilight_gc, - sx1, y, sx2); + mpip->w, gcs.shadow_gc, gcs.hilight_gc, gcs.fore_gc, + sx1, y, sx2, do_flat_separators); } break; default: Only in fvwm-patched/fvwm: menuitem.c.orig diff --unified --recursive --text fvwm-2.6.9/fvwm/menus.c fvwm-patched/fvwm/menus.c --- fvwm-2.6.9/fvwm/menus.c 2020-08-21 15:25:59.047514850 -0600 +++ fvwm-patched/fvwm/menus.c 2020-08-21 15:51:37.725036473 -0600 @@ -1651,6 +1651,10 @@ separator_height = (last_item_has_relief) ? MENU_SEPARATOR_HEIGHT + relief_thickness : MENU_SEPARATOR_TOTAL_HEIGHT; + if (MST_DO_FLAT_SEPARATOR(msp->menu)) + { + separator_height += 1; + } MI_Y_OFFSET(mi) = y; if (MI_IS_TITLE(mi)) { Only in fvwm-patched/fvwm: menus.c.orig diff --unified --recursive --text fvwm-2.6.9/fvwm/menustyle.c fvwm-patched/fvwm/menustyle.c --- fvwm-2.6.9/fvwm/menustyle.c 2018-05-26 05:35:26.000000000 -0600 +++ fvwm-patched/fvwm/menustyle.c 2020-08-21 15:51:37.725036473 -0600 @@ -430,7 +430,7 @@ "TrianglesUseFore", "TitleColorset", "HilightTitleBack", "TitleFont", - "VerticalMargins", + "VerticalMargins", "FlatSeparators", "UniqueHotkeyActivatesImmediate", NULL }; @@ -900,6 +900,7 @@ ST_SCROLL_OFF_PAGE(tmpms) = 1; ST_DO_HILIGHT_TITLE_BACK(tmpms) = 0; ST_USING_DEFAULT_TITLEFONT(tmpms) = True; + ST_DO_FLAT_SEPARATOR(tmpms) = 0; has_gc_changed = True; option = "fvwm"; } @@ -1605,6 +1606,9 @@ case 63: /* UniqueHotKeyActivatesImmediate */ ST_HOTKEY_ACTIVATES_IMMEDIATE(tmpms) = on; break; + case 63: /* FlatSeparators */ + ST_DO_FLAT_SEPARATOR(tmpms) = on; + break; #if 0 case 99: /* PositionHints */ @@ -1863,6 +1867,8 @@ ST_TRIANGLES_USE_FORE(destms) = ST_TRIANGLES_USE_FORE(origms); /* Title */ ST_DO_HILIGHT_TITLE_BACK(destms) = ST_DO_HILIGHT_TITLE_BACK(origms); + /* FlatSeparators */ + ST_DO_FLAT_SEPARATOR(destms) = ST_DO_FLAT_SEPARATOR(origms); menustyle_update(destms); Only in fvwm-patched/fvwm: menustyle.c.orig diff --unified --recursive --text fvwm-2.6.9/fvwm/menustyle.h fvwm-patched/fvwm/menustyle.h --- fvwm-2.6.9/fvwm/menustyle.h 2016-10-15 08:51:45.000000000 -0600 +++ fvwm-patched/fvwm/menustyle.h 2020-08-21 15:51:37.725036473 -0600 @@ -23,6 +23,8 @@ #define MST_FACE(m) ((m)->s->ms->look.face) #define ST_DO_HILIGHT_BACK(s) ((s)->look.flags.do_hilight_back) #define MST_DO_HILIGHT_BACK(m) ((m)->s->ms->look.flags.do_hilight_back) +#define ST_DO_FLAT_SEPARATOR(s) ((s)->look.flags.do_flat_separator) +#define MST_DO_FLAT_SEPARATOR(m) ((m)->s->ms->look.flags.do_flat_separator) #define ST_DO_HILIGHT_FORE(s) ((s)->look.flags.do_hilight_fore) #define MST_DO_HILIGHT_FORE(m) ((m)->s->ms->look.flags.do_hilight_fore) #define ST_DO_HILIGHT_TITLE_BACK(s) ((s)->look.flags.do_hilight_title_back) @@ -282,6 +284,7 @@ unsigned has_title_cset : 1; unsigned do_hilight_title_back : 1; unsigned using_default_titlefont : 1; + unsigned do_flat_separator : 1; } flags; unsigned char ReliefThickness; unsigned char TitleUnderlines;