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