As a general rule they're discouraged, but for very small patches I
don't see a problem.
I'll attach the patch in this e-mail then. The patch size is about 6.1k.
If you would like me to host anything for you, just let me know -- you can
have a shell account on my home server if you like.
Thank you Thomas. I'll drop you a private message at #fvwm when I see you.
Index: fvwm/borders.c
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/borders.c,v
retrieving revision 1.251
diff -u -r1.251 borders.c
--- fvwm/borders.c 27 Jan 2007 11:33:15 -0000 1.251
+++ fvwm/borders.c 6 May 2007 18:01:47 -0000
@@ -1029,7 +1029,8 @@
/* get mark's length and thickness */
inset = (br->relief.w_shin != 0 || br->relief.w_din != 0);
- br->marks.length = fw->boundary_width - br->relief.w_dout - inset;
+ br->marks.length = fw->boundary_width - br->relief.w_dout - inset
+ + ((HAS_MWM_BORDER(fw)) ? 1 : 0);
if (br->marks.length <= 0)
{
br->marks.has_x_marks = 0;
@@ -1107,8 +1108,8 @@
}
static void border_draw_x_mark(
- border_relief_descr *br, int x, int y, Pixmap dest_pix,
- Bool do_draw_shadow)
+ border_relief_descr *br, int x, int y, int relief_offset,
+ Pixmap dest_pix, Bool do_draw_shadow)
{
int k;
int length;
@@ -1143,7 +1144,7 @@
x1 = x;
y1 = y + k;
}
- x2 = x1 + length;
+ x2 = x1 + length + relief_offset;
y2 = y1;
XDrawLine(dpy, dest_pix, gc, x1, y1, x2, y2);
}
@@ -1152,8 +1153,8 @@
}
static void border_draw_y_mark(
- border_relief_descr *br, int x, int y, Pixmap dest_pix,
- Bool do_draw_shadow)
+ border_relief_descr *br, int x, int y, int relief_offset,
+ Pixmap dest_pix, Bool do_draw_shadow)
{
int k;
int length;
@@ -1165,6 +1166,7 @@
}
y += br->marks.offset_tl;
gc = (do_draw_shadow) ? br->gcs.shadow : br->gcs.relief;
+
/* draw it */
for (k = 0, length = br->marks.length; k < br->marks.thickness;
k++, length--)
@@ -1189,7 +1191,8 @@
y1 = y;
}
x2 = x1;
- y2 = y1 + length - 1;
+ y2 = y1 + length - 1 + relief_offset;
+
XDrawLine(dpy, dest_pix, gc, x1, y1, x2, y2);
}
@@ -1197,8 +1200,8 @@
}
static void border_draw_part_marks(
- border_relief_descr *br, rectangle *part_g, window_parts part,
- Pixmap dest_pix)
+ FvwmWindow *fw, border_relief_descr *br, rectangle *part_g,
+ window_parts part, Pixmap dest_pix)
{
int l;
int t;
@@ -1214,36 +1217,100 @@
switch (part)
{
case PART_BORDER_N:
- border_draw_y_mark(br, 0, 0, dest_pix, False);
- border_draw_y_mark(br, w, 0, dest_pix, True);
+ if (HAS_MWM_BUTTONS(fw))
+ {
+ border_draw_y_mark(br, 0, 1, 0, dest_pix, False);
+ border_draw_y_mark(br, w, 1, -1, dest_pix, True);
+ }
+ else
+ {
+ border_draw_y_mark(br, 0, 0, 0, dest_pix, False);
+ border_draw_y_mark(br, w, 0, 0, dest_pix, True);
+ }
break;
case PART_BORDER_S:
- border_draw_y_mark(br, 0, h + o, dest_pix, False);
- border_draw_y_mark(br, w, h + o, dest_pix, True);
+ if (HAS_MWM_BUTTONS(fw))
+ {
+ border_draw_y_mark(br, 0, h + o, -1, dest_pix, False);
+ border_draw_y_mark(br, w, h + o + 1, 0, dest_pix, True);
+ }
+ else
+ {
+ border_draw_y_mark(br, 0, h + o, 0, dest_pix, False);
+ border_draw_y_mark(br, w, h + o, 0, dest_pix, True);
+ }
break;
case PART_BORDER_E:
- border_draw_x_mark(br, w + o, 0, dest_pix, False);
- border_draw_x_mark(br, w + o, h, dest_pix, True);
+ if (HAS_MWM_BUTTONS(fw))
+ {
+ border_draw_x_mark(br, w + o, 0, -1, dest_pix, False);
+ border_draw_x_mark(br, w + o + 1, h, 0, dest_pix, True);
+ }
+ else
+ {
+ border_draw_x_mark(br, w + o, 0, 0, dest_pix, False);
+ border_draw_x_mark(br, w + o, h, 0, dest_pix, True);
+ }
break;
case PART_BORDER_W:
- border_draw_x_mark(br, 0, 0, dest_pix, False);
- border_draw_x_mark(br, 0, h, dest_pix, True);
+ if (HAS_MWM_BUTTONS(fw))
+ {
+ border_draw_x_mark(br, 1, 0, 0, dest_pix, False);
+ border_draw_x_mark(br, 1, h, 0, dest_pix, True);
+ }
+ else
+ {
+ border_draw_x_mark(br, 0, 0, 0, dest_pix, False);
+ border_draw_x_mark(br, 0, h, 0, dest_pix, True);
+ }
break;
case PART_BORDER_NW:
- border_draw_x_mark(br, 0, t, dest_pix, True);
- border_draw_y_mark(br, l, 0, dest_pix, True);
+ if (HAS_MWM_BUTTONS(fw))
+ {
+ border_draw_x_mark(br, 1, t, 0, dest_pix, True);
+ border_draw_y_mark(br, l, 1, -1, dest_pix, True);
+ }
+ else
+ {
+ border_draw_x_mark(br, 0, t, 0, dest_pix, True);
+ border_draw_y_mark(br, l, 0, 0, dest_pix, True);
+ }
break;
case PART_BORDER_NE:
- border_draw_x_mark(br, l + o, t, dest_pix, True);
- border_draw_y_mark(br, 0, 0, dest_pix, False);
+ if (HAS_MWM_BUTTONS(fw))
+ {
+ border_draw_x_mark(br, l + o + 1, t, 0, dest_pix, True);
+ border_draw_y_mark(br, 0, 0, 0, dest_pix, False);
+ }
+ else
+ {
+ border_draw_x_mark(br, l + o, t, 0, dest_pix, True);
+ border_draw_y_mark(br, 0, 0, 0, dest_pix, False);
+ }
break;
case PART_BORDER_SW:
- border_draw_x_mark(br, 0, 0, dest_pix, False);
- border_draw_y_mark(br, l, t + o, dest_pix, True);
+ if (HAS_MWM_BUTTONS(fw))
+ {
+ border_draw_x_mark(br, 1, 0, 0, dest_pix, False);
+ border_draw_y_mark(br, l, t + o + 1, 0, dest_pix, True);
+ }
+ else
+ {
+ border_draw_x_mark(br, 0, 0, 0, dest_pix, False);
+ border_draw_y_mark(br, l, t + o, 0, dest_pix, True);
+ }
break;
case PART_BORDER_SE:
- border_draw_x_mark(br, l + o, 0, dest_pix, False);
- border_draw_y_mark(br, 0, t + o, dest_pix, False);
+ if (HAS_MWM_BUTTONS(fw))
+ {
+ border_draw_x_mark(br, l + o, 0, -1, dest_pix, False);
+ border_draw_y_mark(br, 0, t + o, -1, dest_pix, False);
+ }
+ else
+ {
+ border_draw_x_mark(br, l + o, 0, 0, dest_pix, False);
+ border_draw_y_mark(br, 0, t + o, 0, dest_pix, False);
+ }
break;
default:
return;
@@ -1612,7 +1679,7 @@
/* draw the handle marks */
if (br->marks.has_x_marks || br->marks.has_y_marks)
{
- border_draw_part_marks(br, &part_g, part, p);
+ border_draw_part_marks(fw, br, &part_g, part, p);
}
}
/* apply the pixmap and destroy it */
@@ -3370,7 +3437,7 @@
button_g->height - 1,
(do_reverse_relief) ? sgc : rgc,
(do_reverse_relief) ? rgc : sgc,
- td->cd->relief_width, True);
+ td->cd->relief_width, (HAS_MWM_BUTTONS(fw)) ? False : True);
break;
default:
/* flat */
@@ -3587,7 +3654,7 @@
fw->title_thickness - 1),
(reverse) ? tdd->sgc : tdd->rgc,
(reverse) ? tdd->rgc : tdd->sgc, td->cd->relief_width,
- True, rotation);
+ (HAS_MWM_BUTTONS(fw)) ? False : True, rotation);
break;
default:
/* flat */