Thx for help6thpink
In 06-FlatSeparators.patch, at the end there’s:
diff -U3 -r fvwm/tests/menus/menus.read fvwm/tests/menus/menus.read
--- fvwm/tests/menus/menus.read 2008-05-13 11:01:30.000000000 +0200
+++ fvwm/tests/menus/menus.read 2008-05-13 11:02:34.000000000 +0200
@@ -8,7 +8,7 @@
#
# - SidePic
# - SideColor
-# - SeparatorsLong / SeparatorsShort
+# - SeparatorsLong / SeparatorsShort / FlatSeparators
# - TitleUnderlines0 / TitleUnderlines1 / TitleUnderlines2
# - VerticalItemSpacing
# - VerticalTitleSpacing
@@ -90,6 +90,9 @@
NewTest "%s%.1|%.5i%.5l%.5l%.5r%.5i%2.3>%1|" ", separatorsshort" "separatorsshort" "separatorsshort"
UseDefaultItems
DoTest
+NewTest "%s%.1|%.5i%.5l%.5l%.5r%.5i%2.3>%1|" ", flatseparators" "flatseparators" "flatseparators"
+UseDefaultItems
+DoTest
NewTest "%s%.1|%.5i%.5l%.5l%.5r%.5i%2.3>%1|" ", titleunderlines0" "titleunderlines0" "titleunderlines0"
UseDefaultItems
DoTest
diff -U3 -r fvwm/tests/menus/README fvwm/tests/menus/README
--- fvwm/tests/menus/README 2008-05-13 11:01:30.000000000 +0200
+++ fvwm/tests/menus/README 2008-05-13 11:02:34.000000000 +0200
@@ -19,7 +19,7 @@
- MenuStyle options:
SidePic
SideColor
- SeparatorsLong / SeparatorsShort
+ SeparatorsLong / SeparatorsShort / FlatSeparators
TitleUnderlines0 / TitleUnderlines1 / TitleUnderlines2
VerticalItemSpacing
VerticalTitleSpacing
diff -U3 -r fvwm/tests/purify/purify.fvwm2rc fvwm/tests/purify/purify.fvwm2rc
--- fvwm/tests/purify/purify.fvwm2rc 2008-05-13 11:01:30.000000000 +0200
+++ fvwm/tests/purify/purify.fvwm2rc 2008-05-13 11:02:34.000000000 +0200
@@ -359,8 +359,8 @@
+ I MenuStyle FvwmStyle VerticalMargins 1 -1
+ I MenuStyle FvwmStyle PopupImmediately, PopdownImmediately
+ I MenuStyle FvwmStyle VerticalMargins -1 -1
- + I MenuStyle FvwmStyle TitleUnderlines0, SeparatorsLong, TrianglesSolid
- + I MenuStyle FvwmStyle AutomaticHotkeys, PopupAsRootMenu, RemoveSubmenus
+ + I MenuStyle FvwmStyle TitleUnderlines0, SeparatorsLong, TrianglesSolid, FlatSeparators
+ + I MenuStyle FvwmStyle AutomaticHotkeys, PopupAsRootMenu, RemoveSubmenus, !FlatSeparators
+ I MenuStyle FvwmStyle SubmenusRight, SelectOnRelease Alt, VerticalItemSpacing -2
+ I MenuStyle MwmStyle Mwm, HilightBackOff, ActiveForeOff, Hilight3DThin
Which doesn’t seems to go anywhere as there’s no such files around, I’ve try without these lines and it works great ! (after some light corrections - only paths were not good)
Here’s the full patch that worked for me:
06-FlatSeparators.patch
[code]diff -U3 -r doc/commands/MenuStyle.xml doc/commands/MenuStyle.xml
— doc/commands/MenuStyle.xml 2008-05-13 11:01:30.000000000 +0200
+++ doc/commands/MenuStyle.xml 2008-05-13 11:02:34.000000000 +0200
@@ -58,7 +58,7 @@
PopupOffset,
TitleWarp / !TitleWarp,
TitleUnderlines0 / TitleUnderlines1 / TitleUnderlines2,
-SeparatorsLong / SeparatorsShort,
+SeparatorsLong / SeparatorsShort / FlatSeparators,
TrianglesSolid / TrianglesRelief,
PopupImmediately / PopupDelayed,
PopdownImmediately / PopdownDelayed,
@@ -432,6 +432,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 -U3 -r fvwm/menuitem.c fvwm/menuitem.c
--- fvwm/menuitem.c 2008-05-13 11:01:30.000000000 +0200
+++ fvwm/menuitem.c 2008-05-13 11:02:34.000000000 +0200
@@ -82,10 +82,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;
}
@@ -381,6 +385,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;
@@ -599,6 +604,8 @@
-
do_flat_separators = ST_DO_FLAT_SEPARATOR(ms);
-
/* Calculate the separator offsets. /
if (ST_HAS_LONG_SEPARATORS(ms))
{
@@ -619,9 +626,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;
@@ -661,8 +668,8 @@
if (sx1 < sx2)
{
draw_separator(
-
mpip->w, gcs.shadow_gc, gcs.hilight_gc, gcs.fore_gc,
-
sx1, y, sx2, do_flat_separators);
}
}
/* Underline the title. */
@@ -675,8 +682,8 @@
{
y = y_offset + y_height - MENU_SEPARATOR_HEIGHT;
draw_separator(
-
mpip->w, gcs.shadow_gc, gcs.hilight_gc, gcs.fore_gc,
-
sx1, y, sx2, do_flat_separators);
}
break;
default:
diff -U3 -r fvwm/menus.c fvwm/menus.c
— fvwm/menus.c 2008-05-13 11:01:30.000000000 +0200
+++ fvwm/menus.c 2008-05-13 11:02:34.000000000 +0200
@@ -1659,6 +1659,10 @@
separator_height = (last_item_has_relief) ?
MENU_SEPARATOR_HEIGHT + relief_thickness :
MENU_SEPARATOR_TOTAL_HEIGHT;
diff -U3 -r fvwm/menustyle.c fvwm/menustyle.c
— fvwm/menustyle.c 2008-05-13 11:01:30.000000000 +0200
+++ fvwm/menustyle.c 2008-05-13 11:04:36.000000000 +0200
@@ -427,7 +427,7 @@
“TrianglesUseFore”,
“TitleColorset”, “HilightTitleBack”,
“TitleFont”,
@@ -902,6 +902,7 @@
ST_SCROLL_OFF_PAGE(tmpms) = 1;
ST_DO_HILIGHT_TITLE_BACK(tmpms) = 0;
ST_USING_DEFAULT_TITLEFONT(tmpms) = True;
@@ -1597,6 +1598,9 @@
&ST_VERTICAL_MARGIN_BOTTOM(tmpms),
0, 0);
break;
#if 0
case 99: /* PositionHints /
@@ -1853,6 +1857,8 @@
ST_TRIANGLES_USE_FORE(destms) = ST_TRIANGLES_USE_FORE(origms);
/ Title */
ST_DO_HILIGHT_TITLE_BACK(destms) = ST_DO_HILIGHT_TITLE_BACK(origms);
diff -U3 -r fvwm/menustyle.h fvwm/menustyle.h
— fvwm/menustyle.h 2008-05-13 11:01:30.000000000 +0200
+++ fvwm/menustyle.h 2008-05-13 11:02:34.000000000 +0200
@@ -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)
@@ -279,6 +281,7 @@
unsigned has_title_cset : 1;
unsigned do_hilight_title_back : 1;
unsigned using_default_titlefont : 1;
Many thanks 6thpink for the correction of my ugly work
I hope lots of those will be included in fvwm soon