This is a rather esoteric patch, but one of the things I disliked about the current menu behaviour is that pressing Ctrl-Tab on a menu would jumpt to the next section delimited via separators. I wanted to turn this feature off, which I've now done by adding: SkipSection / !SkipSection menustyle options.
Please find the patch enclosed, it's patched against CVS. I apologise slightly for not using 'cvs diff' for most of the patches I write -- but for very small things like this, I find going down the .orig route easier. -- Thomas Adam -- "If I were a witch's hat, sitting on her head like a paraffin stove, I'd fly away and be a bat." -- Incredible String Band.
--- ./menustyle.c.orig 2006-02-09 11:49:33.000000000 +0000 +++ ./menustyle.c 2006-07-21 18:29:22.000000000 +0100 @@ -396,6 +396,7 @@ "PopupActiveArea", "PopupIgnore", "PopupClose", "MouseWheel", "ScrollOffPage", + "SkipSection", "TrianglesUseFore", "TitleColorset", "HilightTitleBack", "TitleFont", @@ -1479,11 +1480,14 @@ case 57: /* ScrollOffPage */ ST_SCROLL_OFF_PAGE(tmpms) = on; break; - - case 58: /* TrianglesUseFore */ + case 58: + /* SkipSection */ + ST_SKIP_SECTION(tmpms) = on; + break; + case 59: /* TrianglesUseFore */ ST_TRIANGLES_USE_FORE(tmpms) = on; break; - case 59: /* TitleColorset */ + case 60: /* TitleColorset */ if (GetIntegerArguments(args, NULL, val, 1) == 0 || *val < 0) { @@ -1498,11 +1502,11 @@ } has_gc_changed = True; break; - case 60: /* TitleHilightBack */ + case 61: /* TitleHilightBack */ ST_DO_HILIGHT_TITLE_BACK(tmpms) = on; has_gc_changed = True; break; - case 61: /* TitleFont */ + case 62: /* TitleFont */ if (arg1 != NULL && !(new_font = FlocaleLoadFont(dpy, arg1, "FVWM"))) { @@ -1529,8 +1533,6 @@ } has_gc_changed = True; break; - - #if 0 case 99: /* PositionHints */ /* to be implemented */ --- ./menustyle.h.orig 2006-02-09 11:49:33.000000000 +0000 +++ ./menustyle.h 2006-07-21 18:01:06.000000000 +0100 @@ -129,6 +129,8 @@ /* feel */ #define ST_IS_ANIMATED(s) ((s)->feel.flags.is_animated) #define MST_IS_ANIMATED(m) ((m)->s->ms->feel.flags.is_animated) +#define ST_SKIP_SECTION(s) ((s)->feel.flags.skip_section) +#define MST_SKIP_SECTION(m) ((m)->s->ms->feel.flags.skip_section) #define ST_DO_POPUP_IMMEDIATELY(s) ((s)->feel.flags.do_popup_immediately) #define MST_DO_POPUP_IMMEDIATELY(m) \ ((m)->s->ms->feel.flags.do_popup_immediately) @@ -217,6 +219,7 @@ unsigned use_automatic_hotkeys : 1; unsigned mouse_wheel : 2; unsigned scroll_off_page : 1; + unsigned skip_section : 1; } flags; int PopdownDelay10ms; int PopupOffsetPercent; --- ./menus.c.orig 2006-03-27 21:29:19.000000000 +0100 +++ ./menus.c 2006-07-21 18:40:33.000000000 +0100 @@ -1110,7 +1110,13 @@ break; case 2: /* ctrl-tab */ - fSkipSection = True; + /* Negatable via the !SkipSection style flag */ + if (!MST_SKIP_SECTION(mr)) + { + fSkipSection = True; + } else { + fSkipSection = False; + } break; case 3: /* ctrl-meta-tab */ --- ./fvwm.1.in.orig 2006-07-21 19:15:27.000000000 +0100 +++ ./fvwm.1.in 2006-07-21 19:05:49.000000000 +0100 @@ -3514,6 +3514,12 @@ .I !ScrollOffPage disables this behaviour. +.I SkipSection +removes the ability to have the first item of each section (when using +menus separators) to be selected when pressing Ctrl-Tab on a menu. +.I !SkipSection +enables this behaviour. + .I TrianglesUseFore draws sub menu triangles with the foreground color of the menu colorset (normally drawn with the hilight color).