Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-wm/fvwm3/, x11-wm/fvwm3/files/
Date: Wed, 15 Mar 2023 05:05:05
Message-Id: 1678856656.48a2217b5bc9205569152461cccaac20e20306d5.sam@gentoo
1 commit: 48a2217b5bc9205569152461cccaac20e20306d5
2 Author: Matt Jolly <Matt.Jolly <AT> footclan <DOT> ninja>
3 AuthorDate: Sun Mar 12 04:28:51 2023 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Wed Mar 15 05:04:16 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48a2217b
7
8 x11-wm/fvwm3: add 1.0.6a, update 9999
9
10 - Drop translucent menu patch; after 20 years it was upstreamed!
11 - Drop htmldoc patch
12 - Drop vanilla USE; superfluous
13
14 Closes: https://bugs.gentoo.org/877487
15 Closes: https://bugs.gentoo.org/879877
16
17 Signed-off-by: Matt Jolly <Matt.Jolly <AT> footclan.ninja>
18 Closes: https://github.com/gentoo/gentoo/pull/30066
19 Signed-off-by: Sam James <sam <AT> gentoo.org>
20
21 x11-wm/fvwm3/Manifest | 1 +
22 x11-wm/fvwm3/files/fvwm3-9999-goflags.patch | 11 -
23 x11-wm/fvwm3/files/fvwm3-9999-htmldoc.patch | 43 --
24 .../fvwm3/files/fvwm3-9999-translucent-menus.patch | 489 ---------------------
25 .../{fvwm3-9999.ebuild => fvwm3-1.0.6a.ebuild} | 46 +-
26 x11-wm/fvwm3/fvwm3-9999.ebuild | 44 +-
27 x11-wm/fvwm3/metadata.xml | 1 +
28 7 files changed, 36 insertions(+), 599 deletions(-)
29
30 diff --git a/x11-wm/fvwm3/Manifest b/x11-wm/fvwm3/Manifest
31 index 8fbcc853d95b..3469d010d753 100644
32 --- a/x11-wm/fvwm3/Manifest
33 +++ b/x11-wm/fvwm3/Manifest
34 @@ -1 +1,2 @@
35 DIST fvwm3-1.0.4.tar.gz 4691719 BLAKE2B 4ce93b1a2d110b570b5fc8b253f9ff8ea1f44e5470c6e1bc136a53ebe53a23abe3d075bf351fca54ac110ea5731f9b44c59c83186d320e7509bf26e5144436ca SHA512 b72a1ebeba7c55214603fd43ea439f7283b3c79e39d2671a67b9512c67dcea111377eab2131ed0b18a72f6b772b0d048abe08f52565708367465ed9bb14e85f6
36 +DIST fvwm3-1.0.6a.tar.gz 4538100 BLAKE2B c71087eb09a17760ff5754060c4639228f268a0f3640ce0d92d7d8f807aa0df36eac998da0ed943787f1bb369ac90b7b2ca65d922120d41ed81a940be7756f4f SHA512 7577e0dde1f7c5c54024207cf48ab5b816c87fc163735e44eb72e66561c67c08f6a06e7fbf5c89fa6180b692ce25e5121845476d0d1dcfb8273b0aa7321d28f9
37
38 diff --git a/x11-wm/fvwm3/files/fvwm3-9999-goflags.patch b/x11-wm/fvwm3/files/fvwm3-9999-goflags.patch
39 deleted file mode 100644
40 index fa74f6fb734c..000000000000
41 --- a/x11-wm/fvwm3/files/fvwm3-9999-goflags.patch
42 +++ /dev/null
43 @@ -1,11 +0,0 @@
44 ---- a/bin/FvwmPrompt/Makefile.am
45 -+++ b/bin/FvwmPrompt/Makefile.am
46 -@@ -1,7 +1,7 @@
47 - if FVWM_BUILD_GOLANG
48 - GOCMD=go
49 - GOBUILD=$(GOCMD) build
50 --GOFLAGS=-ldflags="-s -w"
51 -+GOFLAGS=
52 - GOCLEAN=$(GOCMD) clean
53 - BINARY_NAME=FvwmPrompt
54 -
55
56 diff --git a/x11-wm/fvwm3/files/fvwm3-9999-htmldoc.patch b/x11-wm/fvwm3/files/fvwm3-9999-htmldoc.patch
57 deleted file mode 100644
58 index abf6fadc614e..000000000000
59 --- a/x11-wm/fvwm3/files/fvwm3-9999-htmldoc.patch
60 +++ /dev/null
61 @@ -1,43 +0,0 @@
62 -This patch enables html documentation in >= 1.0.5 of fvwm3
63 ---- a/doc/Makefile.am
64 -+++ b/doc/Makefile.am
65 -@@ -13,22 +13,27 @@ EXTRA_DIST = $(MODULE_ADOC)
66 - nothing:
67 -
68 - clean:
69 -- rm -f *.1 *.ad
70 -+ rm -f *.1 *.ad *.html
71 -
72 - distclean-local: clean
73 -
74 - if FVWM_BUILD_MANDOC
75 --man1_MANS = $(patsubst %.adoc,%.1, $(MODULE_ADOC))
76 -+man1_MANS = $(MODULE_ADOC:.adoc=.1)
77 -+man1_HTML = $(MODULE_ADOC:.adoc=.html)
78 - EXTRACT_SECTIONS = \
79 - commands \
80 - menus \
81 - styles
82 - SECTION_FILES = $(patsubst %,fvwm3_%.ad, $(EXTRACT_SECTIONS))
83 -
84 --all: docs
85 -+all: docs html
86 -+
87 - docs: $(man1_MANS)
88 - $(man1_MANS): $(SECTION_FILES)
89 -
90 -+html: $(man1_HTML)
91 -+$(man1_HTML): $(SECTION_FILES)
92 -+
93 - %.ad: fvwm3_manpage_source.adoc
94 - SECTION=$(patsubst fvwm3_%.ad,%,$@); \
95 - cat "$<" | \
96 -@@ -38,4 +43,8 @@ $(man1_MANS): $(SECTION_FILES)
97 -
98 - %.1: %.adoc
99 - "$(ASCIIDOC)" -b manpage -a "$(patsubst %.1,%,$@)" "$<" -o "$@"
100 -+
101 -+%.html: %.adoc
102 -+ "$(ASCIIDOC)" -b html5 -a "$(patsubst %.html,%,$@)" "$<" -o "$@"
103 -+
104 - endif
105
106 diff --git a/x11-wm/fvwm3/files/fvwm3-9999-translucent-menus.patch b/x11-wm/fvwm3/files/fvwm3-9999-translucent-menus.patch
107 deleted file mode 100644
108 index 43b5b0a14403..000000000000
109 --- a/x11-wm/fvwm3/files/fvwm3-9999-translucent-menus.patch
110 +++ /dev/null
111 @@ -1,489 +0,0 @@
112 -This patch enables some additional translucency "stuff", ported from a series of patches in 2003 (see readme)
113 ---- a/fvwm/colorset.c
114 -+++ b/fvwm/colorset.c
115 -@@ -162,6 +162,8 @@ static char *csetopts[] =
116 - "NoIconTint",
117 - "IconAlpha",
118 -
119 -+ "Translucent",
120 -+ "NoTranslucent",
121 - NULL
122 - };
123 -
124 -@@ -620,6 +622,7 @@ void parse_colorset(int n, char *line)
125 - char *fg_tint = NULL;
126 - char *bg_tint = NULL;
127 - char *icon_tint = NULL;
128 -+ char *translucent_tint = NULL;
129 - Bool have_pixels_changed = False;
130 - Bool has_icon_pixels_changed = False;
131 - Bool has_fg_changed = False;
132 -@@ -632,6 +635,7 @@ void parse_colorset(int n, char *line)
133 - Bool has_fg_tint_changed = False;
134 - Bool has_bg_tint_changed = False;
135 - Bool has_icon_tint_changed = False;
136 -+ Bool has_translucent_tint_changed = False;
137 - Bool has_pixmap_changed = False;
138 - Bool has_shape_changed = False;
139 - Bool has_image_alpha_changed = False;
140 -@@ -758,6 +762,10 @@ void parse_colorset(int n, char *line)
141 - case 21: /* Plain */
142 - has_pixmap_changed = True;
143 - free_colorset_background(cs, True);
144 -+ cs->is_translucent = False;
145 -+ cs->translucent_tint_percent = 0;
146 -+ cs->color_flags &= ~TRANSLUCENT_TINT_SUPPLIED;
147 -+ has_translucent_tint_changed = True;
148 - break;
149 - case 22: /* NoShape */
150 - has_shape_changed = True;
151 -@@ -923,6 +931,24 @@ void parse_colorset(int n, char *line)
152 - cs->icon_alpha_percent = tmp;
153 - }
154 - break;
155 -+ case 42: /* Translucent */
156 -+ cs->is_translucent = True;
157 -+ parse_simple_tint(
158 -+ cs, args, &translucent_tint,
159 -+ TRANSLUCENT_TINT_SUPPLIED,
160 -+ &has_translucent_tint_changed, &percent,
161 -+ "Translucent");
162 -+ if (has_translucent_tint_changed)
163 -+ {
164 -+ cs->translucent_tint_percent = percent;
165 -+ }
166 -+ break;
167 -+ case 43: /* NoTranslucent */
168 -+ cs->is_translucent = False;
169 -+ cs->translucent_tint_percent = 0;
170 -+ cs->color_flags &= ~TRANSLUCENT_TINT_SUPPLIED;
171 -+ has_translucent_tint_changed = True;
172 -+ break;
173 - default:
174 - /* test for ?Gradient */
175 - if (option[0] && StrEquals(&option[1], "Gradient"))
176 -@@ -1624,6 +1650,27 @@ void parse_colorset(int n, char *line)
177 - }
178 - }
179 -
180 -+ /*
181 -+ * ---------- change the translucent tint colour ----------
182 -+ */
183 -+ if (has_translucent_tint_changed)
184 -+ {
185 -+ /* user specified colour */
186 -+ if (translucent_tint != NULL)
187 -+ {
188 -+ PictureFreeColors(
189 -+ dpy, Pcmap, &cs->translucent_tint, 1, 0, True);
190 -+ cs->translucent_tint = GetColor(translucent_tint);
191 -+ }
192 -+ else
193 -+ {
194 -+ /* default */
195 -+ PictureFreeColors(
196 -+ dpy, Pcmap, &cs->translucent_tint, 1, 0, True);
197 -+ cs->translucent_tint = GetColor(black);
198 -+ }
199 -+ }
200 -+
201 - /*
202 - * ---------- send new colorset to fvwm and clean up ----------
203 - */
204 -@@ -1720,6 +1767,7 @@ void alloc_colorset(int n)
205 - ncs->fgsh = GetColor(white);
206 - ncs->tint = GetColor(black);
207 - ncs->icon_tint = GetColor(black);
208 -+ ncs->translucent_tint = GetColor(black);
209 - ncs->pixmap = XCreatePixmapFromBitmapData(
210 - dpy, Scr.NoFocusWin,
211 - &g_bits[4 * (nColorsets % 3)], 4, 4,
212 -@@ -1737,6 +1785,7 @@ void alloc_colorset(int n)
213 - ncs->fgsh = GetForeShadow(ncs->fg, ncs->bg);
214 - ncs->tint = GetColor(black);
215 - ncs->icon_tint = GetColor(black);
216 -+ ncs->translucent_tint = GetColor(black);
217 - }
218 - ncs->fg_tint = ncs->bg_tint = GetColor(black);
219 - /* set flags for fg contrast, bg average */
220 -@@ -1748,6 +1797,7 @@ void alloc_colorset(int n)
221 - ncs->icon_alpha_percent = 100;
222 - ncs->tint_percent = 0;
223 - ncs->icon_tint_percent = 0;
224 -+ ncs->translucent_tint_percent = 0;
225 - ncs->fg_tint_percent = ncs->bg_tint_percent = 0;
226 - ncs->dither = (PictureDitherByDefault())? True:False;
227 - nColorsets++;
228 ---- a/fvwm/menuroot.h
229 -+++ b/fvwm/menuroot.h
230 -@@ -147,6 +147,9 @@ typedef struct MenuRootDynamic
231 - int d_npixels;
232 - } stored_pixels;
233 - /* alloc pixels when dithering is used for gradients */
234 -+ /* x,y XMapRaise */
235 -+ int x;
236 -+ int y;
237 - } MenuRootDynamic;
238 -
239 - /* access macros to dynamic menu members */
240 ---- a/fvwm/menus.c
241 -+++ b/fvwm/menus.c
242 -@@ -76,6 +76,18 @@
243 - (ctx).menu_root.menu_root = (root))
244 - #define SCTX_GET_MR(ctx) ((ctx).type == SCTX_MENU_ROOT ? \
245 - (ctx).menu_root.menu_root : NULL)
246 -+#define MENU_IS_TRANSLUCENT(mr,cs) \
247 -+ (!MR_IS_TEAR_OFF_MENU(mr) && CSET_IS_TRANSLUCENT(cs))
248 -+#define MENU_IS_TRANSPARENT(mr,cs) \
249 -+ (MENU_IS_TRANSLUCENT(mr,cs) || CSET_IS_TRANSPARENT(cs))
250 -+#define MR_IS_TRANSLUCENT_MENU(mr) \
251 -+ (!MR_IS_TEAR_OFF_MENU(mr) && MR_STYLE(mr) && \
252 -+ ST_HAS_MENU_CSET(MR_STYLE(mr)) && CSET_IS_TRANSLUCENT( \
253 -+ ST_CSET_MENU(MR_STYLE(mr))))
254 -+#define MR_IS_TRANSPARENT_MENU(mr) \
255 -+ (MR_IS_TRANSLUCENT_MENU(mr) || (MR_STYLE(mr) && \
256 -+ ST_HAS_MENU_CSET(MR_STYLE(mr)) && CSET_IS_TRANSPARENT( \
257 -+ ST_CSET_MENU(MR_STYLE(mr)))))
258 -
259 - /* ---------------------------- imports ------------------------------------ */
260 -
261 -@@ -219,6 +231,8 @@ typedef struct mloop_static_info_t
262 - } mloop_static_info_t;
263 -
264 - /* ---------------------------- forward declarations ----------------------- */
265 -+static MenuRoot *seek_submenu_instance(
266 -+ MenuRoot *parent_menu, MenuItem *parent_item);
267 -
268 - /* ---------------------------- local variables ---------------------------- */
269 -
270 -@@ -380,12 +394,22 @@ static void animated_move_back(
271 - Bool transparent_bg = False;
272 -
273 - /* move it back */
274 -- if (ST_HAS_MENU_CSET(MR_STYLE(mr)) &&
275 -- CSET_IS_TRANSPARENT(ST_CSET_MENU(MR_STYLE(mr))))
276 -+ if (MR_IS_TRANSPARENT_MENU(mr))
277 - {
278 - transparent_bg = True;
279 - get_menu_repaint_transparent_parameters(
280 - &mrtp, mr, fw);
281 -+ if (MR_IS_TRANSLUCENT_MENU(mr) && MR_SUBMENU_ITEM(mr))
282 -+ {
283 -+ MenuRoot *smr;
284 -+ smr = seek_submenu_instance(
285 -+ mr, MR_SUBMENU_ITEM(mr));
286 -+ if (smr)
287 -+ {
288 -+ /* just unmap it here, popdown later */
289 -+ XUnmapWindow(dpy, MR_WINDOW(smr));
290 -+ }
291 -+ }
292 - }
293 - end.x = start.x - MR_XANIMATION(mr);
294 - end.y = start.y;
295 -@@ -1914,6 +1938,7 @@ static void make_menu_window(MenuRoot *mr, Bool is_tear_off)
296 - /* Doh. Use the standard display instead. */
297 - MR_CREATE_DPY(mr) = dpy;
298 - }
299 -+ MR_IS_TEAR_OFF_MENU(mr) = 1;
300 - }
301 - else
302 - {
303 -@@ -2718,7 +2743,37 @@ static void paint_menu(
304 - }
305 - MR_IS_PAINTED(mr) = 1;
306 - /* paint the menu background */
307 -- if (ms && ST_HAS_MENU_CSET(ms))
308 -+ if (MR_IS_TRANSLUCENT_MENU(mr))
309 -+ {
310 -+ Pixmap trans = None;
311 -+ FvwmRenderAttributes fra;
312 -+ colorset_t *colorset = &Colorset[ST_CSET_MENU(ms)];
313 -+
314 -+ fra.mask = 0;
315 -+ if (colorset->translucent_tint_percent > 0)
316 -+ {
317 -+ fra.mask = FRAM_HAVE_TINT;
318 -+ fra.tint = colorset->translucent_tint;
319 -+ fra.tint_percent = colorset->translucent_tint_percent;
320 -+ }
321 -+ if (MR_IS_BACKGROUND_SET(mr) == False)
322 -+ {
323 -+ trans = PGraphicsCreateTranslucent(
324 -+ dpy, MR_WINDOW(mr), &fra,
325 -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)),
326 -+ MR_X(mr), MR_Y(mr), MR_WIDTH(mr), MR_HEIGHT(mr));
327 -+ XMapRaised(dpy, MR_WINDOW(mr));
328 -+ if (trans != None)
329 -+ {
330 -+ XSetWindowBackgroundPixmap(
331 -+ dpy, MR_WINDOW(mr), trans);
332 -+ MR_IS_BACKGROUND_SET(mr) = True;
333 -+ clear_expose_menu_area(MR_WINDOW(mr), pevent);
334 -+ XFreePixmap(dpy, trans);
335 -+ }
336 -+ }
337 -+ }
338 -+ else if (ms && ST_HAS_MENU_CSET(ms))
339 - {
340 - if (MR_IS_BACKGROUND_SET(mr) == False)
341 - {
342 -@@ -3527,10 +3582,7 @@ static int pop_menu_up(
343 - MR_HAS_POPPED_UP_RIGHT(mr) = 0;
344 - }
345 - MR_XANIMATION(parent_menu) += end_x - prev_x;
346 -- if (ST_HAS_MENU_CSET(MR_STYLE(parent_menu)) &&
347 -- CSET_IS_TRANSPARENT(
348 -- ST_CSET_MENU(
349 -- MR_STYLE(parent_menu))))
350 -+ if (MR_IS_TRANSPARENT_MENU(parent_menu))
351 - {
352 - transparent_bg = True;
353 - get_menu_repaint_transparent_parameters(
354 -@@ -3713,10 +3765,21 @@ static int pop_menu_up(
355 - */
356 -
357 - XMoveWindow(dpy, MR_WINDOW(mr), x, y);
358 -+ MR_X(mr) = x;
359 -+ MR_Y(mr) = y;
360 - XSelectInput(dpy, MR_WINDOW(mr), event_mask);
361 -- XMapRaised(dpy, MR_WINDOW(mr));
362 -- if (popdown_window)
363 -- XUnmapWindow(dpy, popdown_window);
364 -+ if (MR_IS_TRANSLUCENT_MENU(mr))
365 -+ {
366 -+ if (popdown_window)
367 -+ XUnmapWindow(dpy, popdown_window);
368 -+ paint_menu(mr, NULL, fw);
369 -+ }
370 -+ else
371 -+ {
372 -+ XMapRaised(dpy, MR_WINDOW(mr));
373 -+ if (popdown_window)
374 -+ XUnmapWindow(dpy, popdown_window);
375 -+ }
376 - XFlush(dpy);
377 - MR_MAPPED_COPIES(mr)++;
378 - MST_USAGE_COUNT(mr)++;
379 -@@ -6286,16 +6349,122 @@ void update_transparent_menu_bg(
380 - {
381 - last = True;
382 - }
383 -- if (!last && CSET_IS_TRANSPARENT_PR_TINT(ST_CSET_MENU(ms)))
384 -+ if (!last &&
385 -+ (CSET_IS_TRANSPARENT_PR_TINT(ST_CSET_MENU(ms)) ||
386 -+ MR_IS_TRANSLUCENT_MENU(mr)))
387 - {
388 - /* too slow ... */
389 - return;
390 - }
391 -- SetWindowBackgroundWithOffset(
392 -- dpy, MR_WINDOW(mr), step_x - current_x, step_y - current_y,
393 -- MR_WIDTH(mr), MR_HEIGHT(mr),
394 -- &Colorset[ST_CSET_MENU(ms)], Pdepth,
395 -- FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False);
396 -+ if (MR_IS_TRANSLUCENT_MENU(mr))
397 -+ {
398 -+ Pixmap trans, tmp;
399 -+ FvwmRenderAttributes fra;
400 -+ colorset_t *colorset = &Colorset[ST_CSET_MENU(ms)];
401 -+
402 -+ fra.mask = 0;
403 -+ if (colorset->translucent_tint_percent > 0)
404 -+ {
405 -+ fra.mask = FRAM_HAVE_TINT;
406 -+ fra.tint = colorset->translucent_tint;
407 -+ fra.tint_percent = colorset->translucent_tint_percent;
408 -+ }
409 -+ if (current_x == step_x)
410 -+ {
411 -+ /* Reuse the old pixmap for the part of the menu
412 -+ * that has not moved. (This can be extended to get
413 -+ * two new rectangles, one in each direction)
414 -+ *
415 -+ * It saves the unmapping of the window and makes
416 -+ * Things less flickering.
417 -+ */
418 -+ GC my_gc;
419 -+ unsigned long valuemask = GCSubwindowMode;
420 -+ XGCValues values;
421 -+ int out_y=0;
422 -+ values.subwindow_mode = IncludeInferiors;
423 -+ if (step_y < 0)
424 -+ {
425 -+ out_y = -step_y;
426 -+ }
427 -+ trans = XCreatePixmap(dpy, MR_WINDOW(mr), MR_WIDTH(mr),
428 -+ MR_HEIGHT(mr), Pdepth);
429 -+ my_gc = fvwmlib_XCreateGC(dpy, MR_WINDOW(mr), 0, NULL);
430 -+ XChangeGC(dpy, my_gc, valuemask, &values);
431 -+
432 -+ XClearWindow(dpy, MR_WINDOW(mr));
433 -+
434 -+ if (current_y < step_y)
435 -+ {
436 -+ XCopyArea(dpy, MR_WINDOW(mr), trans, my_gc, 0,
437 -+ step_y-current_y, MR_WIDTH(mr),
438 -+ MR_HEIGHT(mr)-(step_y-current_y),
439 -+ 0,0);
440 -+ tmp = PGraphicsCreateTranslucent(
441 -+ dpy, MR_WINDOW(mr), &fra,
442 -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)),
443 -+ current_x, current_y+MR_HEIGHT(mr),
444 -+ MR_WIDTH(mr), step_y-current_y);
445 -+
446 -+ XCopyArea(dpy, tmp, trans, my_gc, 0, 0,
447 -+ MR_WIDTH(mr), step_y-current_y,0,
448 -+ MR_HEIGHT(mr)-(step_y-current_y));
449 -+ }
450 -+ else
451 -+ {
452 -+ XCopyArea(dpy, MR_WINDOW(mr), trans, my_gc, 0,
453 -+ 0, MR_WIDTH(mr),
454 -+ MR_HEIGHT(mr)-(current_y-step_y), 0,
455 -+ current_y-step_y);
456 -+ tmp = PGraphicsCreateTranslucent(
457 -+ dpy, MR_WINDOW(mr), &fra,
458 -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)),
459 -+ current_x,step_y, MR_WIDTH(mr),
460 -+ current_y-step_y);
461 -+ XCopyArea(dpy, tmp, trans, my_gc, 0, 0,
462 -+ MR_WIDTH(mr), current_y-step_y,0,
463 -+ out_y);
464 -+ }
465 -+ MR_X(mr) = step_x;
466 -+ MR_Y(mr) = step_y;
467 -+ XFreePixmap(dpy, tmp);
468 -+ XFreeGC(dpy,my_gc);
469 -+ }
470 -+ else
471 -+ {
472 -+ XUnmapWindow(dpy, MR_WINDOW(mr));
473 -+ MR_X(mr) = step_x;
474 -+ MR_Y(mr) = step_y;
475 -+ trans = PGraphicsCreateTranslucent(
476 -+ dpy, MR_WINDOW(mr), &fra,
477 -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)),
478 -+ step_x, step_y, MR_WIDTH(mr),
479 -+ MR_HEIGHT(mr));
480 -+ XMapRaised(dpy, MR_WINDOW(mr));
481 -+ }
482 -+ XSetWindowBackgroundPixmap(
483 -+ dpy, MR_WINDOW(mr), trans);
484 -+ XFreePixmap(dpy, trans);
485 -+ if (current_x == step_x)
486 -+ {
487 -+ /* Redraw the border */
488 -+ RelieveRectangle(
489 -+ dpy, MR_WINDOW(mr), 0, 0, MR_WIDTH(mr) - 1,
490 -+ MR_HEIGHT(mr) - 1, (Pdepth < 2) ?
491 -+ SHADOW_GC(MST_MENU_INACTIVE_GCS(mr)) :
492 -+ HILIGHT_GC(MST_MENU_INACTIVE_GCS(mr)),
493 -+ SHADOW_GC(MST_MENU_INACTIVE_GCS(mr)),
494 -+ MST_BORDER_WIDTH(mr));
495 -+ }
496 -+ }
497 -+ else
498 -+ {
499 -+ SetWindowBackgroundWithOffset(
500 -+ dpy, MR_WINDOW(mr), step_x - current_x,
501 -+ step_y - current_y, MR_WIDTH(mr), MR_HEIGHT(mr),
502 -+ &Colorset[ST_CSET_MENU(ms)], Pdepth,
503 -+ FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False);
504 -+ }
505 - }
506 -
507 -
508 -@@ -6336,10 +6505,7 @@ void repaint_transparent_menu(
509 - }
510 - if (!is_bg_set)
511 - {
512 -- SetWindowBackground(
513 -- dpy, MR_WINDOW(mr), MR_WIDTH(mr), MR_HEIGHT(mr),
514 -- &Colorset[ST_CSET_MENU(ms)], Pdepth,
515 -- FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False);
516 -+ update_transparent_menu_bg(prtm, x, y, x, y, end_x, end_y);
517 - }
518 - /* redraw the background of non active item */
519 - for (mi = MR_FIRST_ITEM(mr); mi != NULL; mi = MI_NEXT_ITEM(mi))
520 -@@ -6978,7 +7144,10 @@ void UpdateMenuColorset(int cset)
521 - &Colorset[ST_CSET_MENU(ms2)],
522 - Pdepth,
523 - FORE_GC(MST_MENU_INACTIVE_GCS(mr)),
524 -- True);
525 -+ False);
526 -+ XClearArea(
527 -+ dpy, MR_WINDOW(mr), 0, 0, MR_WIDTH(mr),
528 -+ MR_HEIGHT(mr), True);
529 - }
530 - else if ((ST_HAS_ACTIVE_CSET(ms2) &&
531 - ST_CSET_ACTIVE(ms2) == cset) ||
532 ---- a/fvwm/menus.h
533 -+++ b/fvwm/menus.h
534 -@@ -19,6 +19,9 @@
535 - #define IS_MENU_RETURN(x) \
536 - ((x)==MENU_DONE || (x)==MENU_ABORTED || (x)==MENU_SUBMENU_TORN_OFF)
537 -
538 -+#define MR_X(m) ((m)->d->x)
539 -+#define MR_Y(m) ((m)->d->y)
540 -+
541 - struct MenuRoot;
542 - struct MenuStyle;
543 - struct MenuReturn;
544 ---- a/libs/Colorset.h
545 -+++ b/libs/Colorset.h
546 -@@ -53,6 +53,10 @@ typedef struct Colorset
547 - Bool dither;
548 - Bool allows_buffered_transparency;
549 - Bool is_maybe_root_transparent;
550 -+ /* only use by fvwm menu (non tear-off) */
551 -+ Bool is_translucent;
552 -+ Pixel translucent_tint;
553 -+ unsigned int translucent_tint_percent : 7;
554 - #endif
555 - } colorset_t;
556 -
557 -@@ -80,6 +84,7 @@ typedef struct Colorset
558 - #define FG_TINT_SUPPLIED 0x100
559 - #define BG_TINT_SUPPLIED 0x200
560 - #define ICON_TINT_SUPPLIED 0x400
561 -+#define TRANSLUCENT_TINT_SUPPLIED 0x800
562 - #endif
563 -
564 - /* colorsets are stored as an array of structs to permit fast dereferencing */
565 -@@ -155,6 +160,11 @@ extern colorset_t *Colorset;
566 - (cset != NULL && cset->pixmap == ParentRelative && \
567 - cset->tint_percent > 0)
568 -
569 -+#define CSET_IS_TRANSLUCENT(cset) \
570 -+ (cset >= 0 && Colorset[cset].is_translucent)
571 -+#define CSETS_IS_TRANSLUCENT(cset) \
572 -+ (cset && cset->is_translucent)
573 -+
574 - #ifndef FVWM_COLORSET_PRIVATE
575 - /* Create n new colorsets, fvwm/colorset.c does its own thing (different size)
576 - */
577 ---- a/libs/PictureGraphics.c
578 -+++ b/libs/PictureGraphics.c
579 -@@ -1361,7 +1361,7 @@ void PGraphicsTintRectangle(
580 - }
581 - }
582 -
583 --#if 0 /* humm... maybe useful one day with menus */
584 -+#if 1 /* humm... maybe useful one day with menus */
585 - Pixmap PGraphicsCreateTranslucent(
586 - Display *dpy, Window win, FvwmRenderAttributes *fra, GC gc,
587 - int x, int y, int width, int height)
588 ---- a/libs/PictureGraphics.h
589 -+++ b/libs/PictureGraphics.h
590 -@@ -124,7 +124,9 @@ void PGraphicsTintRectangle(
591 - Display *dpy, Window win, Pixel tint, int tint_percent,
592 - Drawable dest, Bool dest_is_a_window, GC gc, GC mono_gc, GC alpha_gc,
593 - int dest_x, int dest_y, int dest_w, int dest_h);
594 --
595 -+Pixmap PGraphicsCreateTranslucent(
596 -+ Display *dpy, Window win, FvwmRenderAttributes *fra, GC gc,
597 -+ int x, int y, int width, int height);
598 - /* never used ! */
599 - Pixmap PGraphicsCreateDitherPixmap(
600 - Display *dpy, Window win, Drawable src, Pixmap mask, int depth, GC gc,
601
602 diff --git a/x11-wm/fvwm3/fvwm3-9999.ebuild b/x11-wm/fvwm3/fvwm3-1.0.6a.ebuild
603 similarity index 82%
604 copy from x11-wm/fvwm3/fvwm3-9999.ebuild
605 copy to x11-wm/fvwm3/fvwm3-1.0.6a.ebuild
606 index 1d502d3e87c8..cc412650d214 100644
607 --- a/x11-wm/fvwm3/fvwm3-9999.ebuild
608 +++ b/x11-wm/fvwm3/fvwm3-1.0.6a.ebuild
609 @@ -22,14 +22,21 @@ fi
610 LICENSE="GPL-2+ FVWM
611 go? ( Apache-2.0 BSD MIT )"
612 SLOT="0"
613 -IUSE="bidi debug doc go netpbm nls perl readline stroke svg tk vanilla lock"
614 +IUSE="bidi debug doc +go netpbm nls perl readline stroke svg tk lock"
615 REQUIRED_USE="
616 ${PYTHON_REQUIRED_USE}"
617
618 DOCS=( NEWS )
619
620 if [[ ${PV} == 9999 ]]; then
621 - DOCS+=( dev-docs/COMMANDS dev-docs/DEVELOPERS.md dev-docs/INSTALL.md dev-docs/PARSING.md dev-docs/TODO.md dev-docs/NEW-COMMANDS.md )
622 + DOCS+=(
623 + dev-docs/COMMANDS
624 + dev-docs/DEVELOPERS.md
625 + dev-docs/INSTALL.md
626 + dev-docs/PARSING.md
627 + dev-docs/TODO.md
628 + dev-docs/NEW-COMMANDS.md
629 + )
630 fi
631
632 BDEPEND="
633 @@ -72,7 +79,6 @@ RDEPEND="${PYTHON_DEPS}
634 >=dev-perl/X11-Protocol-0.56
635 )
636 )
637 - media-libs/libpng:=
638 readline? (
639 sys-libs/ncurses:=
640 sys-libs/readline:=
641 @@ -86,21 +92,12 @@ RDEPEND="${PYTHON_DEPS}
642 DEPEND="${COMMON_DEPEND}
643 x11-base/xorg-proto"
644
645 -PATCHES=(
646 - "${FILESDIR}/${P}-translucent-menus.patch"
647 -)
648 -
649 -if [[ ${PV} == 9999 ]]; then
650 - PATCHES+=(
651 - "${FILESDIR}/${P}-goflags.patch"
652 - )
653 -fi
654 -
655 src_prepare() {
656 default
657 - if use doc; then
658 - eapply "${FILESDIR}/${P}-htmldoc.patch"
659 - fi
660 + use go && ( sed -e 's/GOFLAGS=-ldflags="-s -w"/GOFLAGS=/' \
661 + -i bin/FvwmPrompt/Makefile.am || die )
662 + # Patch configure to allow later go versions
663 + sed -e 's/1.19\*)$/1.19*|1.20*|1.21*)/' -i configure.ac || die
664
665 eautoreconf
666 }
667 @@ -133,13 +130,13 @@ src_configure() {
668
669 use readline && myconf+=( --without-termcap-library )
670
671 - econf ${myconf[@]}
672 + econf "${myconf[@]}"
673 }
674
675 src_compile() {
676 PREFIX="${EPREFIX}/usr" emake AR="$(tc-getAR)"
677 if [[ ${PV} == *9999 ]]; then
678 - use doc && emake -C doc html
679 + use doc && emake -C doc
680 fi
681 }
682
683 @@ -148,17 +145,10 @@ src_install() {
684
685 dodir /etc/X11/Sessions
686 echo "/usr/bin/fvwm3" > "${ED}/etc/X11/Sessions/${PN}" || die
687 - fperms a+x /etc/X11/Sessions/${PN} || die
688 + fperms a+x "/etc/X11/Sessions/${PN}" || die
689
690 python_scriptinto "/usr/bin"
691 python_doscript "${ED}/usr/bin/FvwmCommand" "${ED}/usr/bin/fvwm-menu-desktop"
692 - if use doc; then
693 - if [[ ${PV} == *9999 ]]; then
694 - HTML_DOCS=( doc/*.html )
695 - else
696 - HTML_DOCS=( doc/html/*.html )
697 - fi
698 - fi
699 einstalldocs
700
701 make_session_desktop fvwm3 /usr/bin/fvwm3
702 @@ -168,9 +158,9 @@ pkg_postinst() {
703 if use go; then
704 ewarn "FvwmPrompt has been installed, it provides the functionality of both FvwmCommand and FvwmConsole."
705 ewarn "For compatibility with the existing fvwm2 configurations, the ebuild will install a FvwmCommand wrapper script."
706 - ewarn "If you need FvwmConsole, install ${PN} with USE=\"-go\", but FvwmPrompt and FvwmCommnd will not be installed."
707 + ewarn "If you need FvwmConsole, install ${PN} with USE=\"-go\", but FvwmPrompt and FvwmCommand will not be installed."
708 else
709 - ewarn "Fvwmconsole has been installed, but FvwmCommand and FvwmPrompt are no longer included in this ebuild."
710 + ewarn "FvwmConsole has been installed, but FvwmCommand and FvwmPrompt are no longer included in this ebuild."
711 ewarn "If you need FvwmPrompt or FvwmCommand, install ${PN} with USE=\"go\"."
712 ewarn "In that case, FvwmPrompt will replace FvwmConsole and provide the same functionality in a more flexible way."
713 fi
714
715 diff --git a/x11-wm/fvwm3/fvwm3-9999.ebuild b/x11-wm/fvwm3/fvwm3-9999.ebuild
716 index 1d502d3e87c8..958bb6e0c085 100644
717 --- a/x11-wm/fvwm3/fvwm3-9999.ebuild
718 +++ b/x11-wm/fvwm3/fvwm3-9999.ebuild
719 @@ -22,14 +22,21 @@ fi
720 LICENSE="GPL-2+ FVWM
721 go? ( Apache-2.0 BSD MIT )"
722 SLOT="0"
723 -IUSE="bidi debug doc go netpbm nls perl readline stroke svg tk vanilla lock"
724 +IUSE="bidi debug doc +go netpbm nls perl readline stroke svg tk lock"
725 REQUIRED_USE="
726 ${PYTHON_REQUIRED_USE}"
727
728 DOCS=( NEWS )
729
730 if [[ ${PV} == 9999 ]]; then
731 - DOCS+=( dev-docs/COMMANDS dev-docs/DEVELOPERS.md dev-docs/INSTALL.md dev-docs/PARSING.md dev-docs/TODO.md dev-docs/NEW-COMMANDS.md )
732 + DOCS+=(
733 + dev-docs/COMMANDS
734 + dev-docs/DEVELOPERS.md
735 + dev-docs/INSTALL.md
736 + dev-docs/PARSING.md
737 + dev-docs/TODO.md
738 + dev-docs/NEW-COMMANDS.md
739 + )
740 fi
741
742 BDEPEND="
743 @@ -72,7 +79,6 @@ RDEPEND="${PYTHON_DEPS}
744 >=dev-perl/X11-Protocol-0.56
745 )
746 )
747 - media-libs/libpng:=
748 readline? (
749 sys-libs/ncurses:=
750 sys-libs/readline:=
751 @@ -86,21 +92,10 @@ RDEPEND="${PYTHON_DEPS}
752 DEPEND="${COMMON_DEPEND}
753 x11-base/xorg-proto"
754
755 -PATCHES=(
756 - "${FILESDIR}/${P}-translucent-menus.patch"
757 -)
758 -
759 -if [[ ${PV} == 9999 ]]; then
760 - PATCHES+=(
761 - "${FILESDIR}/${P}-goflags.patch"
762 - )
763 -fi
764 -
765 src_prepare() {
766 default
767 - if use doc; then
768 - eapply "${FILESDIR}/${P}-htmldoc.patch"
769 - fi
770 + use go && ( sed -e 's/GOFLAGS=-ldflags="-s -w"/GOFLAGS=/' \
771 + -i bin/FvwmPrompt/Makefile.am || die )
772
773 eautoreconf
774 }
775 @@ -133,13 +128,13 @@ src_configure() {
776
777 use readline && myconf+=( --without-termcap-library )
778
779 - econf ${myconf[@]}
780 + econf "${myconf[@]}"
781 }
782
783 src_compile() {
784 PREFIX="${EPREFIX}/usr" emake AR="$(tc-getAR)"
785 if [[ ${PV} == *9999 ]]; then
786 - use doc && emake -C doc html
787 + use doc && emake -C doc
788 fi
789 }
790
791 @@ -148,17 +143,10 @@ src_install() {
792
793 dodir /etc/X11/Sessions
794 echo "/usr/bin/fvwm3" > "${ED}/etc/X11/Sessions/${PN}" || die
795 - fperms a+x /etc/X11/Sessions/${PN} || die
796 + fperms a+x "/etc/X11/Sessions/${PN}" || die
797
798 python_scriptinto "/usr/bin"
799 python_doscript "${ED}/usr/bin/FvwmCommand" "${ED}/usr/bin/fvwm-menu-desktop"
800 - if use doc; then
801 - if [[ ${PV} == *9999 ]]; then
802 - HTML_DOCS=( doc/*.html )
803 - else
804 - HTML_DOCS=( doc/html/*.html )
805 - fi
806 - fi
807 einstalldocs
808
809 make_session_desktop fvwm3 /usr/bin/fvwm3
810 @@ -168,9 +156,9 @@ pkg_postinst() {
811 if use go; then
812 ewarn "FvwmPrompt has been installed, it provides the functionality of both FvwmCommand and FvwmConsole."
813 ewarn "For compatibility with the existing fvwm2 configurations, the ebuild will install a FvwmCommand wrapper script."
814 - ewarn "If you need FvwmConsole, install ${PN} with USE=\"-go\", but FvwmPrompt and FvwmCommnd will not be installed."
815 + ewarn "If you need FvwmConsole, install ${PN} with USE=\"-go\", but FvwmPrompt and FvwmCommand will not be installed."
816 else
817 - ewarn "Fvwmconsole has been installed, but FvwmCommand and FvwmPrompt are no longer included in this ebuild."
818 + ewarn "FvwmConsole has been installed, but FvwmCommand and FvwmPrompt are no longer included in this ebuild."
819 ewarn "If you need FvwmPrompt or FvwmCommand, install ${PN} with USE=\"go\"."
820 ewarn "In that case, FvwmPrompt will replace FvwmConsole and provide the same functionality in a more flexible way."
821 fi
822
823 diff --git a/x11-wm/fvwm3/metadata.xml b/x11-wm/fvwm3/metadata.xml
824 index 569ae86d8fb1..41f1d6eda8d2 100644
825 --- a/x11-wm/fvwm3/metadata.xml
826 +++ b/x11-wm/fvwm3/metadata.xml
827 @@ -20,6 +20,7 @@
828 <flag name="stroke">Mouse Gesture support</flag>
829 </use>
830 <upstream>
831 + <remote-id type="github">fvwmorg/fvwm3</remote-id>
832 <bugs-to>https://github.com/fvwmorg/fvwm3/issues</bugs-to>
833 <changelog>https://raw.githubusercontent.com/fvwmorg/fvwm3/master/CHANGELOG.md</changelog>
834 </upstream>