patches from http://abdn.ac.uk/~u15dm4/fvwm/

Oh, yes. I remember that silly patch and that fuzzy behavior. If I remember correctly, this patch is irreversible, which means that once you apply it, then it’s automatically use. Very bad thing :stuck_out_tongue:

About the rest, if you can’t fix it i will try as soon as I have the time. I don’t know when would that be. :stuck_out_tongue:

I’m looking at what Slackman said about the all in one patch, then try to add the missing patches.
I’ll make a diff between both patched version of fvwm to see what’s different.

Well I didn’t manage to do anything :frowning:
I have a weird error :

patch: **** malformed patch at line 2691: @@ -1821,6 +1885,8 @@

Here’s the AllinOne patch (DOESN’T WORK)

Hi,
a little Update from here:
At this moment Im back to your patchset without patching this ugly "FirstItemUnderPointer" and a few other Patches. As I said, just the MenuStyle "RoundedCorners" takes no effect, all other windows do have RoundedCorners. Why I turned back to your Patchset: The RoundedCorners from the All-In-One-Patchset are not clear. Menu and Terminal do have RoundedCorners only on top, not on bottom. O.K., nevertheless, thx to you for your work, maintaining and hosting the patches. I like them. Unfortunately I cant test anymore because holidays in Spain are waiting for me :slight_smile:
Thx & Greetings

I have revised that new patchset that seems to include all the insane patches that someone found around. Now, all the 18 (yeah, 18, a bit too much for my taste) apply cleanly in a sequential order, that’s from 01 to 18. You might be able to skip some of them without problems though.

I just have cleaned them so they apply. But some of them are broken, some others might be very broken, and some other, like the FirstItemUnderPointer is particularly annoying, because it modifies a default behaviour and it’s effect is not reversible in any way.

I am not taking any time to make further fixes on this patchset (nor any other), because I have other plans, and the things need to be done in an order. I hate duplicating work again and again, so I am trying to get some of this stuff included into the official fvwm branch. But the things go slowly. The next candidate is FlatSeparators, but for that, first I need to receive a response regarding my VerticalSeparatorMargins patch (I think I included it into this new tarball as well).

Well, the link:
jesgue.homelinux.org/fvwm-files/ … es.tar.bz2

If anyone really wants to make something useful I’d vote for picking one (only one patch), fixing it, cleaning it, documenting it and writing all the missing pieces, and then submitting to the workers list for inclusion into fvwm. It’s the only way to keep this functionalities. Otherwise, they will be eventually completely broken and unusable in a few months probably.

I am trying to do some of this on my spare time, but the process is slow, and I pick those ones that I consider interesting and doable with my current understanding of the fvwm sources (rounded corners + flux is probably on the bottom of both lists for now, but in the time I will learn about the fvwm internals, I suppose).

Cheers.

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 @@

    • Draw the item itself.
      */
  • 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,
    
  •   			sx1, y, sx2);
    
  •   			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,
    
  •   			sx1, y, sx2);
    
  •   			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;

  •   if (MST_DO_FLAT_SEPARATOR(msp->menu))
    
  •   {
    
  •   	separator_height += 1;
    
  •   }
      MI_Y_OFFSET(mi) = y;
      if (MI_IS_TITLE(mi))
      {
    

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”,

  •   "VerticalMargins",
    
  •   "VerticalMargins", "FlatSeparators",
      NULL
    
    };

@@ -902,6 +902,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";
      }
    

@@ -1597,6 +1598,9 @@
&ST_VERTICAL_MARGIN_BOTTOM(tmpms),
0, 0);
break;

  •   case 63: /* FlatSeparators */
    
  •   	ST_DO_FLAT_SEPARATOR(tmpms) = on;
    
  •   	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);

  • /* FlatSeparators */

  • ST_DO_FLAT_SEPARATOR(destms) = ST_DO_FLAT_SEPARATOR(origms);

    menustyle_update(destms);

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;

  •   unsigned do_flat_separator : 1;
    
    } flags;
    unsigned char ReliefThickness;
    unsigned char TitleUnderlines;[/code]
    Direct download link

Many thanks 6thpink for the correction of my ugly work
I hope lots of those will be included in fvwm soon :slight_smile: