diff options
Diffstat (limited to 'x11-wm')
-rw-r--r-- | x11-wm/fvwm3/Manifest | 3 | ||||
-rw-r--r-- | x11-wm/fvwm3/files/README.translucency | 94 | ||||
-rw-r--r-- | x11-wm/fvwm3/files/fvwm3-1.0.4-htmldoc.patch | 70 | ||||
-rw-r--r-- | x11-wm/fvwm3/files/fvwm3-1.0.4-translucent-menus.patch | 487 | ||||
-rw-r--r-- | x11-wm/fvwm3/files/fvwm3-9999-goflags.patch | 11 | ||||
-rw-r--r-- | x11-wm/fvwm3/files/fvwm3-9999-htmldoc.patch | 43 | ||||
-rw-r--r-- | x11-wm/fvwm3/files/fvwm3-9999-translucent-menus.patch | 489 | ||||
-rw-r--r-- | x11-wm/fvwm3/fvwm3-1.0.4.ebuild | 200 | ||||
-rw-r--r-- | x11-wm/fvwm3/fvwm3-9999.ebuild | 200 | ||||
-rw-r--r-- | x11-wm/fvwm3/metadata.xml | 27 |
10 files changed, 0 insertions, 1624 deletions
diff --git a/x11-wm/fvwm3/Manifest b/x11-wm/fvwm3/Manifest deleted file mode 100644 index 6ba89565ed08..000000000000 --- a/x11-wm/fvwm3/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST fvwm3-1.0.4-deps.tar.xz 2847880 BLAKE2B 245a5fa7846ffd74679ecd280b7f31cdcc58dfb765923750b22905caecdea0a1b2a322eeecc8133996414be37026de9f859222b78d93ed6c974005456ee953d1 SHA512 c93e5d4706a6261d8ebafcb5d2576377d79dfb693cc2b4a7608c3657b1c612b7c17a2554a6cef30c80ed5ffc9d0efd16f9adc33b2a9b906ece812fdf4fa8ab86 -DIST fvwm3-1.0.4.tar.gz 4691719 BLAKE2B 4ce93b1a2d110b570b5fc8b253f9ff8ea1f44e5470c6e1bc136a53ebe53a23abe3d075bf351fca54ac110ea5731f9b44c59c83186d320e7509bf26e5144436ca SHA512 b72a1ebeba7c55214603fd43ea439f7283b3c79e39d2671a67b9512c67dcea111377eab2131ed0b18a72f6b772b0d048abe08f52565708367465ed9bb14e85f6 -DIST fvwm3-9999-deps.tar.xz 3712984 BLAKE2B 389f70dbadbe2fe6accd4793ed71e17cb2ff2f72e318e1744204344902145e5050ace5379f4de89991907199b7b354a9690e6546382d1eedfcdb676b28f1ff13 SHA512 444b1ea17b31d477ae12b4ef84a9f5fb85aae1158aead1bc3a4d8e96a18dde6a13e41e3e3552bd652eb58fe42958ad45791a1d4ef70242e9d6d80060067cef86 diff --git a/x11-wm/fvwm3/files/README.translucency b/x11-wm/fvwm3/files/README.translucency deleted file mode 100644 index a60b5f668acd..000000000000 --- a/x11-wm/fvwm3/files/README.translucency +++ /dev/null @@ -1,94 +0,0 @@ -From owner-fvwm@hpc.uh.edu Sun Aug 31 22:52:59 2003 -Received: from sina.hpc.uh.edu ([129.7.128.10] ident=lists) - by malifon.math.uh.edu with esmtp (Exim 3.20 #1) - id 19tb0F-0006NY-00; Sun, 31 Aug 2003 17:48:59 -0500 -Received: by sina.hpc.uh.edu (TLB v0.09a (1.20 tibbs 1996/10/09 22:03:07)); Sun, 31 Aug 2003 17:50:31 -0500 (CDT) -Received: from epithumia.math.uh.edu (epithumia.math.uh.edu [129.7.128.2]) - by sina.hpc.uh.edu (8.9.3/8.9.3) with ESMTP id RAA16575 - for <fvwm@hpc.uh.edu>; Sun, 31 Aug 2003 17:50:24 -0500 (CDT) -Received: from epithumia.math.uh.edu (epithumia.math.uh.edu [127.0.0.1]) - by epithumia.math.uh.edu (8.12.8/8.12.5) with ESMTP id h7VMml6M025095 - for <fvwm@hpc.uh.edu>; Sun, 31 Aug 2003 17:48:47 -0500 -Received: (from tibbs@localhost) - by epithumia.math.uh.edu (8.12.8/8.12.8/Submit) id h7VMmlVC025093 - for fvwm@hpc.uh.edu; Sun, 31 Aug 2003 17:48:47 -0500 -Received: from util2.math.uh.edu (util2.math.uh.edu [129.7.128.23]) - by sina.hpc.uh.edu (8.9.3/8.9.3) with ESMTP id QAA16418 - for <fvwm@hpc.uh.edu>; Sun, 31 Aug 2003 16:02:07 -0500 (CDT) -Received: from postfix4-2.free.fr ([213.228.0.176]) - by util2.math.uh.edu with esmtp (Exim 4.20) - id 19tZIm-00079F-6t - for fvwm@fvwm.org; Sun, 31 Aug 2003 16:00:00 -0500 -Received: from snoopy.folie (nas-p19-3-62-147-221-172.dial.proxad.net [62.147.221.172]) - by postfix4-2.free.fr (Postfix) with ESMTP id 59DE6C386 - for <fvwm@fvwm.org>; Sun, 31 Aug 2003 22:59:34 +0200 (CEST) -Received: by snoopy.folie (Postfix, from userid 501) - id A4D1D48784; Sun, 31 Aug 2003 22:39:19 +0200 (CEST) -Date: Sun, 31 Aug 2003 22:39:19 +0200 -From: Olivier Chapuis <olivier.chapuis@free.fr> -To: fvwm@fvwm.org -Subject: Re: FVWM: Transparency/Translucency revisited... -Message-ID: <20030831203919.GA6205@snoopy.folie> -Mail-Followup-To: fvwm@fvwm.org -References: <Pine.LNX.4.44.0308251817370.1980-100000@atlantis.ssw.krakow.pl> -Mime-Version: 1.0 -Content-Type: multipart/mixed; boundary="Nq2Wo0NMKNjxTN9z" -Content-Disposition: inline -In-Reply-To: <Pine.LNX.4.44.0308251817370.1980-100000@atlantis.ssw.krakow.pl> -User-Agent: Mutt/1.4i -X-Spam-Score: -9.3 (---------) -Sender: owner-fvwm@hpc.uh.edu -Precedence: list -X-Majordomo: 1.94.jlt7 -Status: RO -Content-Length: 6519 -Lines: 122 - - ---Nq2Wo0NMKNjxTN9z -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline - -On Mon, Aug 25, 2003 at 09:00:32PM +0200, Dawid Kuroczko wrote: -> Hello. :-) -> -> I did manage to make pseudo-transparent menus, but now I'd like -> to make something more "real". What I'd like to do is to have -> something like there is in KDE. -> -> It should work like this: -> 1. user clicks thus calling a Menu. -> 2. current screen dump is taken (with all the windows, but -> without a menu just as yet). -> 3. this screen dump is made available to Menu as -> root background pixmap. -> 4. Menu is displayed with tinted real background. -> -> This way it's pretty easy to make an illusion of real -> transparency (and looks "l33t", as some may say). -> - -Here a new version of the patch for current cvs/snapshot. -This patch add a new options to Colorset: Translucent/NoTranslucent. -These options has effects only with (non tear-off) menu. -Also menu animation is "handled". - -For example with: - - Colorset 5 fg yellow, bg blue, HGradient 200 lightblue darkblue, \ - Translucent blue 60 - Style * MenuColorset 5, PopupOffset 0 100, AnimationOff - -you get translucent menus (with a 60% blue tint) and if you tear-off -a menu the menu use the gradient. - -Regards, Olivier - -<snip patch> - --- -Visit the official FVWM web page at <URL: http://www.fvwm.org/>. -To unsubscribe from the list, send "unsubscribe fvwm" in the body of a -message to majordomo@fvwm.org. -To report problems, send mail to fvwm-owner@fvwm.org. - diff --git a/x11-wm/fvwm3/files/fvwm3-1.0.4-htmldoc.patch b/x11-wm/fvwm3/files/fvwm3-1.0.4-htmldoc.patch deleted file mode 100644 index 67abc9febfa4..000000000000 --- a/x11-wm/fvwm3/files/fvwm3-1.0.4-htmldoc.patch +++ /dev/null @@ -1,70 +0,0 @@ -This patch enables HTML documentation output ---- a/doc/Makefile.am -+++ b/doc/Makefile.am -@@ -1,29 +1,39 @@ - docdir = @FVWM_DOCDIR@ --MODULE_ADOCS = $(wildcard fvwm3/fvwm3.adoc bin/*.adoc modules/*.adoc) -+DOC_SRC = $(wildcard fvwm3/fvwm3.adoc bin/*.adoc modules/*.adoc) - --EXTRA_DIST = $(MODULE_ADOCS) -+EXTRA_DIST = $(DOC_SRC) - - if FVWM_BUILD_MANDOC --BUILD_MANS = $(patsubst %.adoc,%, $(MODULE_ADOCS)) -+BUILD_MANS = $(DOC_SRC:.adoc=.1) -+BUILD_HTML = $(DOC_SRC:.adoc=.html) - else - BUILD_MANS = - endif - --all: docs --docs: $(BUILD_MANS) -+all: man html -+ -+man: $(BUILD_MANS) -+ -+html: $(BUILD_HTML) - - clean: - rm -fr man1/ -+ rm -fr html/ - - distclean-local: clean - - if FVWM_BUILD_MANDOC - QUIET_ASCIIDOC = @echo ' ' DOC ' ' $@'.1'; - --%: %.adoc -+%.1: %.adoc - $(QUIET_ASCIIDOC) \ - NAME=`basename "$@" | "$(SED)" -e "${transform}"`; \ -- $(ASCIIDOC) -b manpage $< -o "man1/$$NAME.1" -+ $(ASCIIDOC) -b manpage $^ -o "man1/$$NAME" -+ -+%.html: %.adoc -+ $(QUIET_ASCIIDOC:.1=.html) \ -+ NAME=`basename "$@" | "$(SED)" -e "${transform}"`; \ -+ $(ASCIIDOC) -b html5 $^ -o "html/$$NAME" - - install-data-local: - install -d -m 755 $(DESTDIR)$(mandir)/man1/ -@@ -31,10 +41,19 @@ install-data-local: - NAME=`basename "$$i" | "$(SED)" -e "${transform}"`; \ - install -m 644 "man1/$$NAME.1" $(DESTDIR)$(mandir)/man1/; \ - done -+ install -d -m 755 $(DESTDIR)$(mandir)/html/ -+ @for i in $(notdir $(BUILD_HTML)); do \ -+ NAME=`basename "$$i" | "$(SED)" -e "${transform}"`; \ -+ install -m 644 "html/$$NAME.html" $(DESTDIR)$(mandir)/html/; \ -+ done - - uninstall-local: - @for i in $(notdir $(BUILD_MANS)); do \ - NAME=`basename "$$i" | "$(SED)" -e "${transform}"`; \ - rm -f "$(DESTDIR)$(mandir)/man1/$$NAME.1"; \ - done -+ @for i in $(notdir $(BUILD_HTML)); do \ -+ NAME=`basename "$$i" | "$(SED)" -e "${transform}"`; \ -+ rm -f "$(DESTDIR)$(mandir)/html/$$NAME.html"; \ -+ done - endif diff --git a/x11-wm/fvwm3/files/fvwm3-1.0.4-translucent-menus.patch b/x11-wm/fvwm3/files/fvwm3-1.0.4-translucent-menus.patch deleted file mode 100644 index 5ead9b09aff5..000000000000 --- a/x11-wm/fvwm3/files/fvwm3-1.0.4-translucent-menus.patch +++ /dev/null @@ -1,487 +0,0 @@ ---- a/fvwm/colorset.c -+++ b/fvwm/colorset.c -@@ -162,6 +162,8 @@ static char *csetopts[] = - "NoIconTint", - "IconAlpha", - -+ "Translucent", -+ "NoTranslucent", - NULL - }; - -@@ -620,6 +622,7 @@ void parse_colorset(int n, char *line) - char *fg_tint = NULL; - char *bg_tint = NULL; - char *icon_tint = NULL; -+ char *translucent_tint = NULL; - Bool have_pixels_changed = False; - Bool has_icon_pixels_changed = False; - Bool has_fg_changed = False; -@@ -632,6 +635,7 @@ void parse_colorset(int n, char *line) - Bool has_fg_tint_changed = False; - Bool has_bg_tint_changed = False; - Bool has_icon_tint_changed = False; -+ Bool has_translucent_tint_changed = False; - Bool has_pixmap_changed = False; - Bool has_shape_changed = False; - Bool has_image_alpha_changed = False; -@@ -758,6 +762,10 @@ void parse_colorset(int n, char *line) - case 21: /* Plain */ - has_pixmap_changed = True; - free_colorset_background(cs, True); -+ cs->is_translucent = False; -+ cs->translucent_tint_percent = 0; -+ cs->color_flags &= ~TRANSLUCENT_TINT_SUPPLIED; -+ has_translucent_tint_changed = True; - break; - case 22: /* NoShape */ - has_shape_changed = True; -@@ -923,6 +931,24 @@ void parse_colorset(int n, char *line) - cs->icon_alpha_percent = tmp; - } - break; -+ case 42: /* Translucent */ -+ cs->is_translucent = True; -+ parse_simple_tint( -+ cs, args, &translucent_tint, -+ TRANSLUCENT_TINT_SUPPLIED, -+ &has_translucent_tint_changed, &percent, -+ "Translucent"); -+ if (has_translucent_tint_changed) -+ { -+ cs->translucent_tint_percent = percent; -+ } -+ break; -+ case 43: /* NoTranslucent */ -+ cs->is_translucent = False; -+ cs->translucent_tint_percent = 0; -+ cs->color_flags &= ~TRANSLUCENT_TINT_SUPPLIED; -+ has_translucent_tint_changed = True; -+ break; - default: - /* test for ?Gradient */ - if (option[0] && StrEquals(&option[1], "Gradient")) -@@ -1624,6 +1650,27 @@ void parse_colorset(int n, char *line) - } - } - -+ /* -+ * ---------- change the translucent tint colour ---------- -+ */ -+ if (has_translucent_tint_changed) -+ { -+ /* user specified colour */ -+ if (translucent_tint != NULL) -+ { -+ PictureFreeColors( -+ dpy, Pcmap, &cs->translucent_tint, 1, 0, True); -+ cs->translucent_tint = GetColor(translucent_tint); -+ } -+ else -+ { -+ /* default */ -+ PictureFreeColors( -+ dpy, Pcmap, &cs->translucent_tint, 1, 0, True); -+ cs->translucent_tint = GetColor(black); -+ } -+ } -+ - /* - * ---------- send new colorset to fvwm and clean up ---------- - */ -@@ -1720,6 +1767,7 @@ void alloc_colorset(int n) - ncs->fgsh = GetColor(white); - ncs->tint = GetColor(black); - ncs->icon_tint = GetColor(black); -+ ncs->translucent_tint = GetColor(black); - ncs->pixmap = XCreatePixmapFromBitmapData( - dpy, Scr.NoFocusWin, - &g_bits[4 * (nColorsets % 3)], 4, 4, -@@ -1737,6 +1785,7 @@ void alloc_colorset(int n) - ncs->fgsh = GetForeShadow(ncs->fg, ncs->bg); - ncs->tint = GetColor(black); - ncs->icon_tint = GetColor(black); -+ ncs->translucent_tint = GetColor(black); - } - ncs->fg_tint = ncs->bg_tint = GetColor(black); - /* set flags for fg contrast, bg average */ -@@ -1748,6 +1797,7 @@ void alloc_colorset(int n) - ncs->icon_alpha_percent = 100; - ncs->tint_percent = 0; - ncs->icon_tint_percent = 0; -+ ncs->translucent_tint_percent = 0; - ncs->fg_tint_percent = ncs->bg_tint_percent = 0; - ncs->dither = (PictureDitherByDefault())? True:False; - nColorsets++; ---- a/fvwm/menuroot.h -+++ b/fvwm/menuroot.h -@@ -147,6 +147,9 @@ typedef struct MenuRootDynamic - int d_npixels; - } stored_pixels; - /* alloc pixels when dithering is used for gradients */ -+ /* x,y XMapRaise */ -+ int x; -+ int y; - } MenuRootDynamic; - - /* access macros to dynamic menu members */ ---- a/fvwm/menus.c -+++ b/fvwm/menus.c -@@ -75,6 +75,18 @@ - (ctx).menu_root.menu_root = (root)) - #define SCTX_GET_MR(ctx) ((ctx).type == SCTX_MENU_ROOT ? \ - (ctx).menu_root.menu_root : NULL) -+#define MENU_IS_TRANSLUCENT(mr,cs) \ -+ (!MR_IS_TEAR_OFF_MENU(mr) && CSET_IS_TRANSLUCENT(cs)) -+#define MENU_IS_TRANSPARENT(mr,cs) \ -+ (MENU_IS_TRANSLUCENT(mr,cs) || CSET_IS_TRANSPARENT(cs)) -+#define MR_IS_TRANSLUCENT_MENU(mr) \ -+ (!MR_IS_TEAR_OFF_MENU(mr) && MR_STYLE(mr) && \ -+ ST_HAS_MENU_CSET(MR_STYLE(mr)) && CSET_IS_TRANSLUCENT( \ -+ ST_CSET_MENU(MR_STYLE(mr)))) -+#define MR_IS_TRANSPARENT_MENU(mr) \ -+ (MR_IS_TRANSLUCENT_MENU(mr) || (MR_STYLE(mr) && \ -+ ST_HAS_MENU_CSET(MR_STYLE(mr)) && CSET_IS_TRANSPARENT( \ -+ ST_CSET_MENU(MR_STYLE(mr))))) - - /* ---------------------------- imports ------------------------------------ */ - -@@ -218,6 +230,8 @@ typedef struct mloop_static_info_t - } mloop_static_info_t; - - /* ---------------------------- forward declarations ----------------------- */ -+static MenuRoot *seek_submenu_instance( -+ MenuRoot *parent_menu, MenuItem *parent_item); - - /* ---------------------------- local variables ---------------------------- */ - -@@ -379,12 +393,22 @@ static void animated_move_back( - Bool transparent_bg = False; - - /* move it back */ -- if (ST_HAS_MENU_CSET(MR_STYLE(mr)) && -- CSET_IS_TRANSPARENT(ST_CSET_MENU(MR_STYLE(mr)))) -+ if (MR_IS_TRANSPARENT_MENU(mr)) - { - transparent_bg = True; - get_menu_repaint_transparent_parameters( - &mrtp, mr, fw); -+ if (MR_IS_TRANSLUCENT_MENU(mr) && MR_SUBMENU_ITEM(mr)) -+ { -+ MenuRoot *smr; -+ smr = seek_submenu_instance( -+ mr, MR_SUBMENU_ITEM(mr)); -+ if (smr) -+ { -+ /* just unmap it here, popdown later */ -+ XUnmapWindow(dpy, MR_WINDOW(smr)); -+ } -+ } - } - AnimatedMoveOfWindow( - MR_WINDOW(mr), act_x, act_y, act_x - MR_XANIMATION(mr), -@@ -1910,6 +1934,7 @@ static void make_menu_window(MenuRoot *mr, Bool is_tear_off) - /* Doh. Use the standard display instead. */ - MR_CREATE_DPY(mr) = dpy; - } -+ MR_IS_TEAR_OFF_MENU(mr) = 1; - } - else - { -@@ -2714,7 +2739,37 @@ static void paint_menu( - } - MR_IS_PAINTED(mr) = 1; - /* paint the menu background */ -- if (ms && ST_HAS_MENU_CSET(ms)) -+ if (MR_IS_TRANSLUCENT_MENU(mr)) -+ { -+ Pixmap trans = None; -+ FvwmRenderAttributes fra; -+ colorset_t *colorset = &Colorset[ST_CSET_MENU(ms)]; -+ -+ fra.mask = 0; -+ if (colorset->translucent_tint_percent > 0) -+ { -+ fra.mask = FRAM_HAVE_TINT; -+ fra.tint = colorset->translucent_tint; -+ fra.tint_percent = colorset->translucent_tint_percent; -+ } -+ if (MR_IS_BACKGROUND_SET(mr) == False) -+ { -+ trans = PGraphicsCreateTranslucent( -+ dpy, MR_WINDOW(mr), &fra, -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), -+ MR_X(mr), MR_Y(mr), MR_WIDTH(mr), MR_HEIGHT(mr)); -+ XMapRaised(dpy, MR_WINDOW(mr)); -+ if (trans != None) -+ { -+ XSetWindowBackgroundPixmap( -+ dpy, MR_WINDOW(mr), trans); -+ MR_IS_BACKGROUND_SET(mr) = True; -+ clear_expose_menu_area(MR_WINDOW(mr), pevent); -+ XFreePixmap(dpy, trans); -+ } -+ } -+ } -+ else if (ms && ST_HAS_MENU_CSET(ms)) - { - if (MR_IS_BACKGROUND_SET(mr) == False) - { -@@ -3523,10 +3578,7 @@ static int pop_menu_up( - MR_HAS_POPPED_UP_RIGHT(mr) = 0; - } - MR_XANIMATION(parent_menu) += end_x - prev_x; -- if (ST_HAS_MENU_CSET(MR_STYLE(parent_menu)) && -- CSET_IS_TRANSPARENT( -- ST_CSET_MENU( -- MR_STYLE(parent_menu)))) -+ if (MR_IS_TRANSPARENT_MENU(parent_menu)) - { - transparent_bg = True; - get_menu_repaint_transparent_parameters( -@@ -3705,10 +3757,21 @@ static int pop_menu_up( - */ - - XMoveWindow(dpy, MR_WINDOW(mr), x, y); -+ MR_X(mr) = x; -+ MR_Y(mr) = y; - XSelectInput(dpy, MR_WINDOW(mr), event_mask); -- XMapRaised(dpy, MR_WINDOW(mr)); -- if (popdown_window) -- XUnmapWindow(dpy, popdown_window); -+ if (MR_IS_TRANSLUCENT_MENU(mr)) -+ { -+ if (popdown_window) -+ XUnmapWindow(dpy, popdown_window); -+ paint_menu(mr, NULL, fw); -+ } -+ else -+ { -+ XMapRaised(dpy, MR_WINDOW(mr)); -+ if (popdown_window) -+ XUnmapWindow(dpy, popdown_window); -+ } - XFlush(dpy); - MR_MAPPED_COPIES(mr)++; - MST_USAGE_COUNT(mr)++; -@@ -6277,16 +6340,122 @@ void update_transparent_menu_bg( - { - last = True; - } -- if (!last && CSET_IS_TRANSPARENT_PR_TINT(ST_CSET_MENU(ms))) -+ if (!last && -+ (CSET_IS_TRANSPARENT_PR_TINT(ST_CSET_MENU(ms)) || -+ MR_IS_TRANSLUCENT_MENU(mr))) - { - /* too slow ... */ - return; - } -- SetWindowBackgroundWithOffset( -- dpy, MR_WINDOW(mr), step_x - current_x, step_y - current_y, -- MR_WIDTH(mr), MR_HEIGHT(mr), -- &Colorset[ST_CSET_MENU(ms)], Pdepth, -- FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); -+ if (MR_IS_TRANSLUCENT_MENU(mr)) -+ { -+ Pixmap trans, tmp; -+ FvwmRenderAttributes fra; -+ colorset_t *colorset = &Colorset[ST_CSET_MENU(ms)]; -+ -+ fra.mask = 0; -+ if (colorset->translucent_tint_percent > 0) -+ { -+ fra.mask = FRAM_HAVE_TINT; -+ fra.tint = colorset->translucent_tint; -+ fra.tint_percent = colorset->translucent_tint_percent; -+ } -+ if (current_x == step_x) -+ { -+ /* Reuse the old pixmap for the part of the menu -+ * that has not moved. (This can be extended to get -+ * two new rectangles, one in each direction) -+ * -+ * It saves the unmapping of the window and makes -+ * Things less flickering. -+ */ -+ GC my_gc; -+ unsigned long valuemask = GCSubwindowMode; -+ XGCValues values; -+ int out_y=0; -+ values.subwindow_mode = IncludeInferiors; -+ if (step_y < 0) -+ { -+ out_y = -step_y; -+ } -+ trans = XCreatePixmap(dpy, MR_WINDOW(mr), MR_WIDTH(mr), -+ MR_HEIGHT(mr), Pdepth); -+ my_gc = fvwmlib_XCreateGC(dpy, MR_WINDOW(mr), 0, NULL); -+ XChangeGC(dpy, my_gc, valuemask, &values); -+ -+ XClearWindow(dpy, MR_WINDOW(mr)); -+ -+ if (current_y < step_y) -+ { -+ XCopyArea(dpy, MR_WINDOW(mr), trans, my_gc, 0, -+ step_y-current_y, MR_WIDTH(mr), -+ MR_HEIGHT(mr)-(step_y-current_y), -+ 0,0); -+ tmp = PGraphicsCreateTranslucent( -+ dpy, MR_WINDOW(mr), &fra, -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), -+ current_x, current_y+MR_HEIGHT(mr), -+ MR_WIDTH(mr), step_y-current_y); -+ -+ XCopyArea(dpy, tmp, trans, my_gc, 0, 0, -+ MR_WIDTH(mr), step_y-current_y,0, -+ MR_HEIGHT(mr)-(step_y-current_y)); -+ } -+ else -+ { -+ XCopyArea(dpy, MR_WINDOW(mr), trans, my_gc, 0, -+ 0, MR_WIDTH(mr), -+ MR_HEIGHT(mr)-(current_y-step_y), 0, -+ current_y-step_y); -+ tmp = PGraphicsCreateTranslucent( -+ dpy, MR_WINDOW(mr), &fra, -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), -+ current_x,step_y, MR_WIDTH(mr), -+ current_y-step_y); -+ XCopyArea(dpy, tmp, trans, my_gc, 0, 0, -+ MR_WIDTH(mr), current_y-step_y,0, -+ out_y); -+ } -+ MR_X(mr) = step_x; -+ MR_Y(mr) = step_y; -+ XFreePixmap(dpy, tmp); -+ XFreeGC(dpy,my_gc); -+ } -+ else -+ { -+ XUnmapWindow(dpy, MR_WINDOW(mr)); -+ MR_X(mr) = step_x; -+ MR_Y(mr) = step_y; -+ trans = PGraphicsCreateTranslucent( -+ dpy, MR_WINDOW(mr), &fra, -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), -+ step_x, step_y, MR_WIDTH(mr), -+ MR_HEIGHT(mr)); -+ XMapRaised(dpy, MR_WINDOW(mr)); -+ } -+ XSetWindowBackgroundPixmap( -+ dpy, MR_WINDOW(mr), trans); -+ XFreePixmap(dpy, trans); -+ if (current_x == step_x) -+ { -+ /* Redraw the border */ -+ RelieveRectangle( -+ dpy, MR_WINDOW(mr), 0, 0, MR_WIDTH(mr) - 1, -+ MR_HEIGHT(mr) - 1, (Pdepth < 2) ? -+ SHADOW_GC(MST_MENU_INACTIVE_GCS(mr)) : -+ HILIGHT_GC(MST_MENU_INACTIVE_GCS(mr)), -+ SHADOW_GC(MST_MENU_INACTIVE_GCS(mr)), -+ MST_BORDER_WIDTH(mr)); -+ } -+ } -+ else -+ { -+ SetWindowBackgroundWithOffset( -+ dpy, MR_WINDOW(mr), step_x - current_x, -+ step_y - current_y, MR_WIDTH(mr), MR_HEIGHT(mr), -+ &Colorset[ST_CSET_MENU(ms)], Pdepth, -+ FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); -+ } - } - - -@@ -6327,10 +6496,7 @@ void repaint_transparent_menu( - } - if (!is_bg_set) - { -- SetWindowBackground( -- dpy, MR_WINDOW(mr), MR_WIDTH(mr), MR_HEIGHT(mr), -- &Colorset[ST_CSET_MENU(ms)], Pdepth, -- FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); -+ update_transparent_menu_bg(prtm, x, y, x, y, end_x, end_y); - } - /* redraw the background of non active item */ - for (mi = MR_FIRST_ITEM(mr); mi != NULL; mi = MI_NEXT_ITEM(mi)) -@@ -6969,7 +7135,10 @@ void UpdateMenuColorset(int cset) - &Colorset[ST_CSET_MENU(ms)], - Pdepth, - FORE_GC(MST_MENU_INACTIVE_GCS(mr)), -- True); -+ False); -+ XClearArea( -+ dpy, MR_WINDOW(mr), 0, 0, MR_WIDTH(mr), -+ MR_HEIGHT(mr), True); - } - else if ((ST_HAS_ACTIVE_CSET(ms) && - ST_CSET_ACTIVE(ms) == cset) || ---- a/fvwm/menus.h -+++ b/fvwm/menus.h -@@ -19,6 +19,9 @@ - #define IS_MENU_RETURN(x) \ - ((x)==MENU_DONE || (x)==MENU_ABORTED || (x)==MENU_SUBMENU_TORN_OFF) - -+#define MR_X(m) ((m)->d->x) -+#define MR_Y(m) ((m)->d->y) -+ - struct MenuRoot; - struct MenuStyle; - struct MenuReturn; ---- a/libs/Colorset.h -+++ b/libs/Colorset.h -@@ -53,6 +53,10 @@ typedef struct Colorset - Bool dither; - Bool allows_buffered_transparency; - Bool is_maybe_root_transparent; -+ /* only use by fvwm menu (non tear-off) */ -+ Bool is_translucent; -+ Pixel translucent_tint; -+ unsigned int translucent_tint_percent : 7; - #endif - } colorset_t; - -@@ -80,6 +84,7 @@ typedef struct Colorset - #define FG_TINT_SUPPLIED 0x100 - #define BG_TINT_SUPPLIED 0x200 - #define ICON_TINT_SUPPLIED 0x400 -+#define TRANSLUCENT_TINT_SUPPLIED 0x800 - #endif - - /* colorsets are stored as an array of structs to permit fast dereferencing */ -@@ -154,6 +159,10 @@ extern colorset_t *Colorset; - #define CSETS_IS_TRANSPARENT_PR_TINT(cset) \ - (cset != NULL && cset->pixmap == ParentRelative && \ - cset->tint_percent > 0) -+#define CSET_IS_TRANSLUCENT(cset) \ -+ (cset >= 0 && Colorset[cset].is_translucent) -+#define CSETS_IS_TRANSLUCENT(cset) \ -+ (cset && cset->is_translucent) - - #ifndef FVWM_COLORSET_PRIVATE - /* Create n new colorsets, fvwm/colorset.c does its own thing (different size) ---- a/libs/PictureGraphics.c -+++ b/libs/PictureGraphics.c -@@ -1361,7 +1361,7 @@ void PGraphicsTintRectangle( - } - } - --#if 0 /* humm... maybe useful one day with menus */ -+#if 1 /* humm... maybe useful one day with menus */ - Pixmap PGraphicsCreateTranslucent( - Display *dpy, Window win, FvwmRenderAttributes *fra, GC gc, - int x, int y, int width, int height) ---- a/libs/PictureGraphics.h -+++ b/libs/PictureGraphics.h -@@ -124,7 +124,9 @@ void PGraphicsTintRectangle( - Display *dpy, Window win, Pixel tint, int tint_percent, - Drawable dest, Bool dest_is_a_window, GC gc, GC mono_gc, GC alpha_gc, - int dest_x, int dest_y, int dest_w, int dest_h); -- -+Pixmap PGraphicsCreateTranslucent( -+ Display *dpy, Window win, FvwmRenderAttributes *fra, GC gc, -+ int x, int y, int width, int height); - /* never used ! */ - Pixmap PGraphicsCreateDitherPixmap( - Display *dpy, Window win, Drawable src, Pixmap mask, int depth, GC gc, diff --git a/x11-wm/fvwm3/files/fvwm3-9999-goflags.patch b/x11-wm/fvwm3/files/fvwm3-9999-goflags.patch deleted file mode 100644 index fa74f6fb734c..000000000000 --- a/x11-wm/fvwm3/files/fvwm3-9999-goflags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/bin/FvwmPrompt/Makefile.am -+++ b/bin/FvwmPrompt/Makefile.am -@@ -1,7 +1,7 @@ - if FVWM_BUILD_GOLANG - GOCMD=go - GOBUILD=$(GOCMD) build --GOFLAGS=-ldflags="-s -w" -+GOFLAGS= - GOCLEAN=$(GOCMD) clean - BINARY_NAME=FvwmPrompt - diff --git a/x11-wm/fvwm3/files/fvwm3-9999-htmldoc.patch b/x11-wm/fvwm3/files/fvwm3-9999-htmldoc.patch deleted file mode 100644 index abf6fadc614e..000000000000 --- a/x11-wm/fvwm3/files/fvwm3-9999-htmldoc.patch +++ /dev/null @@ -1,43 +0,0 @@ -This patch enables html documentation in >= 1.0.5 of fvwm3 ---- a/doc/Makefile.am -+++ b/doc/Makefile.am -@@ -13,22 +13,27 @@ EXTRA_DIST = $(MODULE_ADOC) - nothing: - - clean: -- rm -f *.1 *.ad -+ rm -f *.1 *.ad *.html - - distclean-local: clean - - if FVWM_BUILD_MANDOC --man1_MANS = $(patsubst %.adoc,%.1, $(MODULE_ADOC)) -+man1_MANS = $(MODULE_ADOC:.adoc=.1) -+man1_HTML = $(MODULE_ADOC:.adoc=.html) - EXTRACT_SECTIONS = \ - commands \ - menus \ - styles - SECTION_FILES = $(patsubst %,fvwm3_%.ad, $(EXTRACT_SECTIONS)) - --all: docs -+all: docs html -+ - docs: $(man1_MANS) - $(man1_MANS): $(SECTION_FILES) - -+html: $(man1_HTML) -+$(man1_HTML): $(SECTION_FILES) -+ - %.ad: fvwm3_manpage_source.adoc - SECTION=$(patsubst fvwm3_%.ad,%,$@); \ - cat "$<" | \ -@@ -38,4 +43,8 @@ $(man1_MANS): $(SECTION_FILES) - - %.1: %.adoc - "$(ASCIIDOC)" -b manpage -a "$(patsubst %.1,%,$@)" "$<" -o "$@" -+ -+%.html: %.adoc -+ "$(ASCIIDOC)" -b html5 -a "$(patsubst %.html,%,$@)" "$<" -o "$@" -+ - endif diff --git a/x11-wm/fvwm3/files/fvwm3-9999-translucent-menus.patch b/x11-wm/fvwm3/files/fvwm3-9999-translucent-menus.patch deleted file mode 100644 index 43b5b0a14403..000000000000 --- a/x11-wm/fvwm3/files/fvwm3-9999-translucent-menus.patch +++ /dev/null @@ -1,489 +0,0 @@ -This patch enables some additional translucency "stuff", ported from a series of patches in 2003 (see readme) ---- a/fvwm/colorset.c -+++ b/fvwm/colorset.c -@@ -162,6 +162,8 @@ static char *csetopts[] = - "NoIconTint", - "IconAlpha", - -+ "Translucent", -+ "NoTranslucent", - NULL - }; - -@@ -620,6 +622,7 @@ void parse_colorset(int n, char *line) - char *fg_tint = NULL; - char *bg_tint = NULL; - char *icon_tint = NULL; -+ char *translucent_tint = NULL; - Bool have_pixels_changed = False; - Bool has_icon_pixels_changed = False; - Bool has_fg_changed = False; -@@ -632,6 +635,7 @@ void parse_colorset(int n, char *line) - Bool has_fg_tint_changed = False; - Bool has_bg_tint_changed = False; - Bool has_icon_tint_changed = False; -+ Bool has_translucent_tint_changed = False; - Bool has_pixmap_changed = False; - Bool has_shape_changed = False; - Bool has_image_alpha_changed = False; -@@ -758,6 +762,10 @@ void parse_colorset(int n, char *line) - case 21: /* Plain */ - has_pixmap_changed = True; - free_colorset_background(cs, True); -+ cs->is_translucent = False; -+ cs->translucent_tint_percent = 0; -+ cs->color_flags &= ~TRANSLUCENT_TINT_SUPPLIED; -+ has_translucent_tint_changed = True; - break; - case 22: /* NoShape */ - has_shape_changed = True; -@@ -923,6 +931,24 @@ void parse_colorset(int n, char *line) - cs->icon_alpha_percent = tmp; - } - break; -+ case 42: /* Translucent */ -+ cs->is_translucent = True; -+ parse_simple_tint( -+ cs, args, &translucent_tint, -+ TRANSLUCENT_TINT_SUPPLIED, -+ &has_translucent_tint_changed, &percent, -+ "Translucent"); -+ if (has_translucent_tint_changed) -+ { -+ cs->translucent_tint_percent = percent; -+ } -+ break; -+ case 43: /* NoTranslucent */ -+ cs->is_translucent = False; -+ cs->translucent_tint_percent = 0; -+ cs->color_flags &= ~TRANSLUCENT_TINT_SUPPLIED; -+ has_translucent_tint_changed = True; -+ break; - default: - /* test for ?Gradient */ - if (option[0] && StrEquals(&option[1], "Gradient")) -@@ -1624,6 +1650,27 @@ void parse_colorset(int n, char *line) - } - } - -+ /* -+ * ---------- change the translucent tint colour ---------- -+ */ -+ if (has_translucent_tint_changed) -+ { -+ /* user specified colour */ -+ if (translucent_tint != NULL) -+ { -+ PictureFreeColors( -+ dpy, Pcmap, &cs->translucent_tint, 1, 0, True); -+ cs->translucent_tint = GetColor(translucent_tint); -+ } -+ else -+ { -+ /* default */ -+ PictureFreeColors( -+ dpy, Pcmap, &cs->translucent_tint, 1, 0, True); -+ cs->translucent_tint = GetColor(black); -+ } -+ } -+ - /* - * ---------- send new colorset to fvwm and clean up ---------- - */ -@@ -1720,6 +1767,7 @@ void alloc_colorset(int n) - ncs->fgsh = GetColor(white); - ncs->tint = GetColor(black); - ncs->icon_tint = GetColor(black); -+ ncs->translucent_tint = GetColor(black); - ncs->pixmap = XCreatePixmapFromBitmapData( - dpy, Scr.NoFocusWin, - &g_bits[4 * (nColorsets % 3)], 4, 4, -@@ -1737,6 +1785,7 @@ void alloc_colorset(int n) - ncs->fgsh = GetForeShadow(ncs->fg, ncs->bg); - ncs->tint = GetColor(black); - ncs->icon_tint = GetColor(black); -+ ncs->translucent_tint = GetColor(black); - } - ncs->fg_tint = ncs->bg_tint = GetColor(black); - /* set flags for fg contrast, bg average */ -@@ -1748,6 +1797,7 @@ void alloc_colorset(int n) - ncs->icon_alpha_percent = 100; - ncs->tint_percent = 0; - ncs->icon_tint_percent = 0; -+ ncs->translucent_tint_percent = 0; - ncs->fg_tint_percent = ncs->bg_tint_percent = 0; - ncs->dither = (PictureDitherByDefault())? True:False; - nColorsets++; ---- a/fvwm/menuroot.h -+++ b/fvwm/menuroot.h -@@ -147,6 +147,9 @@ typedef struct MenuRootDynamic - int d_npixels; - } stored_pixels; - /* alloc pixels when dithering is used for gradients */ -+ /* x,y XMapRaise */ -+ int x; -+ int y; - } MenuRootDynamic; - - /* access macros to dynamic menu members */ ---- a/fvwm/menus.c -+++ b/fvwm/menus.c -@@ -76,6 +76,18 @@ - (ctx).menu_root.menu_root = (root)) - #define SCTX_GET_MR(ctx) ((ctx).type == SCTX_MENU_ROOT ? \ - (ctx).menu_root.menu_root : NULL) -+#define MENU_IS_TRANSLUCENT(mr,cs) \ -+ (!MR_IS_TEAR_OFF_MENU(mr) && CSET_IS_TRANSLUCENT(cs)) -+#define MENU_IS_TRANSPARENT(mr,cs) \ -+ (MENU_IS_TRANSLUCENT(mr,cs) || CSET_IS_TRANSPARENT(cs)) -+#define MR_IS_TRANSLUCENT_MENU(mr) \ -+ (!MR_IS_TEAR_OFF_MENU(mr) && MR_STYLE(mr) && \ -+ ST_HAS_MENU_CSET(MR_STYLE(mr)) && CSET_IS_TRANSLUCENT( \ -+ ST_CSET_MENU(MR_STYLE(mr)))) -+#define MR_IS_TRANSPARENT_MENU(mr) \ -+ (MR_IS_TRANSLUCENT_MENU(mr) || (MR_STYLE(mr) && \ -+ ST_HAS_MENU_CSET(MR_STYLE(mr)) && CSET_IS_TRANSPARENT( \ -+ ST_CSET_MENU(MR_STYLE(mr))))) - - /* ---------------------------- imports ------------------------------------ */ - -@@ -219,6 +231,8 @@ typedef struct mloop_static_info_t - } mloop_static_info_t; - - /* ---------------------------- forward declarations ----------------------- */ -+static MenuRoot *seek_submenu_instance( -+ MenuRoot *parent_menu, MenuItem *parent_item); - - /* ---------------------------- local variables ---------------------------- */ - -@@ -380,12 +394,22 @@ static void animated_move_back( - Bool transparent_bg = False; - - /* move it back */ -- if (ST_HAS_MENU_CSET(MR_STYLE(mr)) && -- CSET_IS_TRANSPARENT(ST_CSET_MENU(MR_STYLE(mr)))) -+ if (MR_IS_TRANSPARENT_MENU(mr)) - { - transparent_bg = True; - get_menu_repaint_transparent_parameters( - &mrtp, mr, fw); -+ if (MR_IS_TRANSLUCENT_MENU(mr) && MR_SUBMENU_ITEM(mr)) -+ { -+ MenuRoot *smr; -+ smr = seek_submenu_instance( -+ mr, MR_SUBMENU_ITEM(mr)); -+ if (smr) -+ { -+ /* just unmap it here, popdown later */ -+ XUnmapWindow(dpy, MR_WINDOW(smr)); -+ } -+ } - } - end.x = start.x - MR_XANIMATION(mr); - end.y = start.y; -@@ -1914,6 +1938,7 @@ static void make_menu_window(MenuRoot *mr, Bool is_tear_off) - /* Doh. Use the standard display instead. */ - MR_CREATE_DPY(mr) = dpy; - } -+ MR_IS_TEAR_OFF_MENU(mr) = 1; - } - else - { -@@ -2718,7 +2743,37 @@ static void paint_menu( - } - MR_IS_PAINTED(mr) = 1; - /* paint the menu background */ -- if (ms && ST_HAS_MENU_CSET(ms)) -+ if (MR_IS_TRANSLUCENT_MENU(mr)) -+ { -+ Pixmap trans = None; -+ FvwmRenderAttributes fra; -+ colorset_t *colorset = &Colorset[ST_CSET_MENU(ms)]; -+ -+ fra.mask = 0; -+ if (colorset->translucent_tint_percent > 0) -+ { -+ fra.mask = FRAM_HAVE_TINT; -+ fra.tint = colorset->translucent_tint; -+ fra.tint_percent = colorset->translucent_tint_percent; -+ } -+ if (MR_IS_BACKGROUND_SET(mr) == False) -+ { -+ trans = PGraphicsCreateTranslucent( -+ dpy, MR_WINDOW(mr), &fra, -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), -+ MR_X(mr), MR_Y(mr), MR_WIDTH(mr), MR_HEIGHT(mr)); -+ XMapRaised(dpy, MR_WINDOW(mr)); -+ if (trans != None) -+ { -+ XSetWindowBackgroundPixmap( -+ dpy, MR_WINDOW(mr), trans); -+ MR_IS_BACKGROUND_SET(mr) = True; -+ clear_expose_menu_area(MR_WINDOW(mr), pevent); -+ XFreePixmap(dpy, trans); -+ } -+ } -+ } -+ else if (ms && ST_HAS_MENU_CSET(ms)) - { - if (MR_IS_BACKGROUND_SET(mr) == False) - { -@@ -3527,10 +3582,7 @@ static int pop_menu_up( - MR_HAS_POPPED_UP_RIGHT(mr) = 0; - } - MR_XANIMATION(parent_menu) += end_x - prev_x; -- if (ST_HAS_MENU_CSET(MR_STYLE(parent_menu)) && -- CSET_IS_TRANSPARENT( -- ST_CSET_MENU( -- MR_STYLE(parent_menu)))) -+ if (MR_IS_TRANSPARENT_MENU(parent_menu)) - { - transparent_bg = True; - get_menu_repaint_transparent_parameters( -@@ -3713,10 +3765,21 @@ static int pop_menu_up( - */ - - XMoveWindow(dpy, MR_WINDOW(mr), x, y); -+ MR_X(mr) = x; -+ MR_Y(mr) = y; - XSelectInput(dpy, MR_WINDOW(mr), event_mask); -- XMapRaised(dpy, MR_WINDOW(mr)); -- if (popdown_window) -- XUnmapWindow(dpy, popdown_window); -+ if (MR_IS_TRANSLUCENT_MENU(mr)) -+ { -+ if (popdown_window) -+ XUnmapWindow(dpy, popdown_window); -+ paint_menu(mr, NULL, fw); -+ } -+ else -+ { -+ XMapRaised(dpy, MR_WINDOW(mr)); -+ if (popdown_window) -+ XUnmapWindow(dpy, popdown_window); -+ } - XFlush(dpy); - MR_MAPPED_COPIES(mr)++; - MST_USAGE_COUNT(mr)++; -@@ -6286,16 +6349,122 @@ void update_transparent_menu_bg( - { - last = True; - } -- if (!last && CSET_IS_TRANSPARENT_PR_TINT(ST_CSET_MENU(ms))) -+ if (!last && -+ (CSET_IS_TRANSPARENT_PR_TINT(ST_CSET_MENU(ms)) || -+ MR_IS_TRANSLUCENT_MENU(mr))) - { - /* too slow ... */ - return; - } -- SetWindowBackgroundWithOffset( -- dpy, MR_WINDOW(mr), step_x - current_x, step_y - current_y, -- MR_WIDTH(mr), MR_HEIGHT(mr), -- &Colorset[ST_CSET_MENU(ms)], Pdepth, -- FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); -+ if (MR_IS_TRANSLUCENT_MENU(mr)) -+ { -+ Pixmap trans, tmp; -+ FvwmRenderAttributes fra; -+ colorset_t *colorset = &Colorset[ST_CSET_MENU(ms)]; -+ -+ fra.mask = 0; -+ if (colorset->translucent_tint_percent > 0) -+ { -+ fra.mask = FRAM_HAVE_TINT; -+ fra.tint = colorset->translucent_tint; -+ fra.tint_percent = colorset->translucent_tint_percent; -+ } -+ if (current_x == step_x) -+ { -+ /* Reuse the old pixmap for the part of the menu -+ * that has not moved. (This can be extended to get -+ * two new rectangles, one in each direction) -+ * -+ * It saves the unmapping of the window and makes -+ * Things less flickering. -+ */ -+ GC my_gc; -+ unsigned long valuemask = GCSubwindowMode; -+ XGCValues values; -+ int out_y=0; -+ values.subwindow_mode = IncludeInferiors; -+ if (step_y < 0) -+ { -+ out_y = -step_y; -+ } -+ trans = XCreatePixmap(dpy, MR_WINDOW(mr), MR_WIDTH(mr), -+ MR_HEIGHT(mr), Pdepth); -+ my_gc = fvwmlib_XCreateGC(dpy, MR_WINDOW(mr), 0, NULL); -+ XChangeGC(dpy, my_gc, valuemask, &values); -+ -+ XClearWindow(dpy, MR_WINDOW(mr)); -+ -+ if (current_y < step_y) -+ { -+ XCopyArea(dpy, MR_WINDOW(mr), trans, my_gc, 0, -+ step_y-current_y, MR_WIDTH(mr), -+ MR_HEIGHT(mr)-(step_y-current_y), -+ 0,0); -+ tmp = PGraphicsCreateTranslucent( -+ dpy, MR_WINDOW(mr), &fra, -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), -+ current_x, current_y+MR_HEIGHT(mr), -+ MR_WIDTH(mr), step_y-current_y); -+ -+ XCopyArea(dpy, tmp, trans, my_gc, 0, 0, -+ MR_WIDTH(mr), step_y-current_y,0, -+ MR_HEIGHT(mr)-(step_y-current_y)); -+ } -+ else -+ { -+ XCopyArea(dpy, MR_WINDOW(mr), trans, my_gc, 0, -+ 0, MR_WIDTH(mr), -+ MR_HEIGHT(mr)-(current_y-step_y), 0, -+ current_y-step_y); -+ tmp = PGraphicsCreateTranslucent( -+ dpy, MR_WINDOW(mr), &fra, -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), -+ current_x,step_y, MR_WIDTH(mr), -+ current_y-step_y); -+ XCopyArea(dpy, tmp, trans, my_gc, 0, 0, -+ MR_WIDTH(mr), current_y-step_y,0, -+ out_y); -+ } -+ MR_X(mr) = step_x; -+ MR_Y(mr) = step_y; -+ XFreePixmap(dpy, tmp); -+ XFreeGC(dpy,my_gc); -+ } -+ else -+ { -+ XUnmapWindow(dpy, MR_WINDOW(mr)); -+ MR_X(mr) = step_x; -+ MR_Y(mr) = step_y; -+ trans = PGraphicsCreateTranslucent( -+ dpy, MR_WINDOW(mr), &fra, -+ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), -+ step_x, step_y, MR_WIDTH(mr), -+ MR_HEIGHT(mr)); -+ XMapRaised(dpy, MR_WINDOW(mr)); -+ } -+ XSetWindowBackgroundPixmap( -+ dpy, MR_WINDOW(mr), trans); -+ XFreePixmap(dpy, trans); -+ if (current_x == step_x) -+ { -+ /* Redraw the border */ -+ RelieveRectangle( -+ dpy, MR_WINDOW(mr), 0, 0, MR_WIDTH(mr) - 1, -+ MR_HEIGHT(mr) - 1, (Pdepth < 2) ? -+ SHADOW_GC(MST_MENU_INACTIVE_GCS(mr)) : -+ HILIGHT_GC(MST_MENU_INACTIVE_GCS(mr)), -+ SHADOW_GC(MST_MENU_INACTIVE_GCS(mr)), -+ MST_BORDER_WIDTH(mr)); -+ } -+ } -+ else -+ { -+ SetWindowBackgroundWithOffset( -+ dpy, MR_WINDOW(mr), step_x - current_x, -+ step_y - current_y, MR_WIDTH(mr), MR_HEIGHT(mr), -+ &Colorset[ST_CSET_MENU(ms)], Pdepth, -+ FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); -+ } - } - - -@@ -6336,10 +6505,7 @@ void repaint_transparent_menu( - } - if (!is_bg_set) - { -- SetWindowBackground( -- dpy, MR_WINDOW(mr), MR_WIDTH(mr), MR_HEIGHT(mr), -- &Colorset[ST_CSET_MENU(ms)], Pdepth, -- FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); -+ update_transparent_menu_bg(prtm, x, y, x, y, end_x, end_y); - } - /* redraw the background of non active item */ - for (mi = MR_FIRST_ITEM(mr); mi != NULL; mi = MI_NEXT_ITEM(mi)) -@@ -6978,7 +7144,10 @@ void UpdateMenuColorset(int cset) - &Colorset[ST_CSET_MENU(ms2)], - Pdepth, - FORE_GC(MST_MENU_INACTIVE_GCS(mr)), -- True); -+ False); -+ XClearArea( -+ dpy, MR_WINDOW(mr), 0, 0, MR_WIDTH(mr), -+ MR_HEIGHT(mr), True); - } - else if ((ST_HAS_ACTIVE_CSET(ms2) && - ST_CSET_ACTIVE(ms2) == cset) || ---- a/fvwm/menus.h -+++ b/fvwm/menus.h -@@ -19,6 +19,9 @@ - #define IS_MENU_RETURN(x) \ - ((x)==MENU_DONE || (x)==MENU_ABORTED || (x)==MENU_SUBMENU_TORN_OFF) - -+#define MR_X(m) ((m)->d->x) -+#define MR_Y(m) ((m)->d->y) -+ - struct MenuRoot; - struct MenuStyle; - struct MenuReturn; ---- a/libs/Colorset.h -+++ b/libs/Colorset.h -@@ -53,6 +53,10 @@ typedef struct Colorset - Bool dither; - Bool allows_buffered_transparency; - Bool is_maybe_root_transparent; -+ /* only use by fvwm menu (non tear-off) */ -+ Bool is_translucent; -+ Pixel translucent_tint; -+ unsigned int translucent_tint_percent : 7; - #endif - } colorset_t; - -@@ -80,6 +84,7 @@ typedef struct Colorset - #define FG_TINT_SUPPLIED 0x100 - #define BG_TINT_SUPPLIED 0x200 - #define ICON_TINT_SUPPLIED 0x400 -+#define TRANSLUCENT_TINT_SUPPLIED 0x800 - #endif - - /* colorsets are stored as an array of structs to permit fast dereferencing */ -@@ -155,6 +160,11 @@ extern colorset_t *Colorset; - (cset != NULL && cset->pixmap == ParentRelative && \ - cset->tint_percent > 0) - -+#define CSET_IS_TRANSLUCENT(cset) \ -+ (cset >= 0 && Colorset[cset].is_translucent) -+#define CSETS_IS_TRANSLUCENT(cset) \ -+ (cset && cset->is_translucent) -+ - #ifndef FVWM_COLORSET_PRIVATE - /* Create n new colorsets, fvwm/colorset.c does its own thing (different size) - */ ---- a/libs/PictureGraphics.c -+++ b/libs/PictureGraphics.c -@@ -1361,7 +1361,7 @@ void PGraphicsTintRectangle( - } - } - --#if 0 /* humm... maybe useful one day with menus */ -+#if 1 /* humm... maybe useful one day with menus */ - Pixmap PGraphicsCreateTranslucent( - Display *dpy, Window win, FvwmRenderAttributes *fra, GC gc, - int x, int y, int width, int height) ---- a/libs/PictureGraphics.h -+++ b/libs/PictureGraphics.h -@@ -124,7 +124,9 @@ void PGraphicsTintRectangle( - Display *dpy, Window win, Pixel tint, int tint_percent, - Drawable dest, Bool dest_is_a_window, GC gc, GC mono_gc, GC alpha_gc, - int dest_x, int dest_y, int dest_w, int dest_h); -- -+Pixmap PGraphicsCreateTranslucent( -+ Display *dpy, Window win, FvwmRenderAttributes *fra, GC gc, -+ int x, int y, int width, int height); - /* never used ! */ - Pixmap PGraphicsCreateDitherPixmap( - Display *dpy, Window win, Drawable src, Pixmap mask, int depth, GC gc, diff --git a/x11-wm/fvwm3/fvwm3-1.0.4.ebuild b/x11-wm/fvwm3/fvwm3-1.0.4.ebuild deleted file mode 100644 index c396bd24fe70..000000000000 --- a/x11-wm/fvwm3/fvwm3-1.0.4.ebuild +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{8..11} ) -GO_OPTIONAL=1 -inherit autotools desktop flag-o-matic go-module python-single-r1 - -DESCRIPTION="A multiple large virtual desktop window manager derived from fvwm" -HOMEPAGE="http://www.fvwm.org/" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/fvwmorg/fvwm3.git" - EGIT_BRANCH="master" -else - SRC_URI="https://github.com/fvwmorg/fvwm3/releases/download/${PV}/${P}.tar.gz" - KEYWORDS="~amd64" -fi - -SRC_URI+=" https://gitlab.com/Matt.Jolly/fvwm3-go-deps/-/raw/${PV}/${P}-deps.tar.xz?inline=false -> ${P}-deps.tar.xz" - -LICENSE="GPL-2+ FVWM - go? ( - Apache-2.0 - BSD - MIT - )" - -SLOT="0" - -IUSE="bidi debug doc go netpbm nls perl png readline rplay stroke svg tk truetype vanilla lock" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE}" - -DOCS=( NEWS ) - -if [[ ${PV} == 9999 ]]; then - 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 ) -fi - -BDEPEND=" - virtual/pkgconfig - doc? ( dev-libs/libxslt - dev-ruby/asciidoctor ) - app-arch/unzip - go? ( >=dev-lang/go-1.14 ) -" - -RDEPEND="${PYTHON_DEPS} - ${COMMON_DEPEND} - !x11-wm/fvwm - >=dev-libs/libevent-2.0.0 - dev-lang/perl - sys-libs/zlib - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXau - x11-libs/libxcb - x11-libs/libXcursor - x11-libs/libXdmcp - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXpm - x11-libs/libXrandr - x11-libs/libXrender - bidi? ( dev-libs/fribidi ) - lock? ( x11-misc/xlockmore ) - netpbm? ( media-libs/netpbm ) - perl? ( tk? ( - dev-lang/tk - dev-perl/Tk - >=dev-perl/X11-Protocol-0.56 - ) - ) - png? ( media-libs/libpng:= ) - readline? ( - sys-libs/ncurses:= - sys-libs/readline:= - ) - rplay? ( media-sound/rplay ) - stroke? ( dev-libs/libstroke ) - svg? ( gnome-base/librsvg:2 ) - truetype? ( - media-libs/fontconfig - x11-libs/libXft - ) - userland_GNU? ( sys-apps/debianutils )" - -DEPEND="${COMMON_DEPEND} - x11-base/xorg-proto" - -PATCHES=( - "${FILESDIR}/${P}-translucent-menus.patch" -) - -if [[ ${PV} == 9999 ]]; then - PATCHES+=( - "${FILESDIR}/${P}-goflags.patch" - ) -fi - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - einfo "The branch ${EGIT_BRANCH} will be installed." - git-r3_src_unpack - else - unpack "${P}".tar.gz - fi - unpack "${P}"-deps.tar.xz - mv go-mod ${P}/bin/FvwmPrompt/ || die -} - -src_prepare() { - default - if use doc; then - eapply "${FILESDIR}/${P}-htmldoc.patch" - fi - - sed -i '/^@FVWM_BUILD_GOLANG_TRUE@GOBUILD = $(GOCMD) build/s/$/ -mod=mod/' \ - bin/FvwmPrompt/Makefile.in || die "Updating go build paramaters failed." - - eautoreconf -} - -src_configure() { - # Non-upstream email where bugs should be sent; used in fvwm-bug. - export FVWM_BUGADDR="desktop-wm@nogentoo.org" - - # Recommended by upstream for release. Doesn't really matter for live ebuilds. - append-flags -fno-strict-aliasing - - # Signed chars are required. - for arch in arm arm64 ppc ppc64; do - use $arch && append-flags -fsigned-chars - done - - local myconf=( - --prefix=/usr - --with-imagepath=/usr/include/X11/bitmaps:/usr/include/X11/pixmaps:/usr/share/icons/fvwm - --enable-package-subdirs - $(use_enable bidi) - $(use_enable doc mandoc) - $(use_enable go golang) - $(use_enable nls) - $(use_enable nls iconv) - $(use_enable perl perllib) - $(use_enable png) - $(use_with readline readline-library) - $(use_enable svg rsvg) - $(use_enable truetype xft) - --docdir=/usr/share/doc/${P} - ) - - use readline && myconf+=( --without-termcap-library ) - - econf ${myconf[@]} -} - -src_compile() { - PREFIX="/usr" emake - if [[ ${PV} == *9999 ]]; then - use doc && emake -C doc html - fi -} - -src_install() { - emake DESTDIR="${ED}" prefix="/usr" exec_prefix="/usr" datarootdir="/usr/share" install - - dodir /etc/X11/Sessions - echo "/usr/bin/fvwm3" > "${ED}/etc/X11/Sessions/${PN}" || die - fperms a+x /etc/X11/Sessions/${PN} || die - - python_scriptinto "/usr/bin" - python_doscript "${ED}/usr/bin/FvwmCommand" "${ED}/usr/bin/fvwm-menu-desktop" - if use doc; then - if [[ ${PV} == *9999 ]]; then - HTML_DOCS=( doc/*.html ) - else - HTML_DOCS=( doc/html/*.html ) - fi - fi - einstalldocs - - make_session_desktop fvwm3 /usr/bin/fvwm3 -} - -pkg_postinst() { - if use go; then - ewarn "FvwmPrompt has been installed, it provides the functionality of both FvwmCommand and FvwmConsole." - ewarn "For compatibility with the existing fvwm2 configurations, the ebuild will install a FvwmCommand wrapper script." - ewarn "If you need FvwmConsole, install ${PN} with USE=\"-go\", but FvwmPrompt and FvwmCommnd will not be installed." - else - ewarn "Fvwmconsole has been installed, but FvwmCommand and FvwmPrompt are no longer included in this ebuild." - ewarn "If you need FvwmPrompt or FvwmCommand, install ${PN} with USE=\"go\"." - ewarn "In that case, FvwmPrompt will replace FvwmConsole and provide the same functionality in a more flexible way." - fi -} diff --git a/x11-wm/fvwm3/fvwm3-9999.ebuild b/x11-wm/fvwm3/fvwm3-9999.ebuild deleted file mode 100644 index c396bd24fe70..000000000000 --- a/x11-wm/fvwm3/fvwm3-9999.ebuild +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{8..11} ) -GO_OPTIONAL=1 -inherit autotools desktop flag-o-matic go-module python-single-r1 - -DESCRIPTION="A multiple large virtual desktop window manager derived from fvwm" -HOMEPAGE="http://www.fvwm.org/" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/fvwmorg/fvwm3.git" - EGIT_BRANCH="master" -else - SRC_URI="https://github.com/fvwmorg/fvwm3/releases/download/${PV}/${P}.tar.gz" - KEYWORDS="~amd64" -fi - -SRC_URI+=" https://gitlab.com/Matt.Jolly/fvwm3-go-deps/-/raw/${PV}/${P}-deps.tar.xz?inline=false -> ${P}-deps.tar.xz" - -LICENSE="GPL-2+ FVWM - go? ( - Apache-2.0 - BSD - MIT - )" - -SLOT="0" - -IUSE="bidi debug doc go netpbm nls perl png readline rplay stroke svg tk truetype vanilla lock" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE}" - -DOCS=( NEWS ) - -if [[ ${PV} == 9999 ]]; then - 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 ) -fi - -BDEPEND=" - virtual/pkgconfig - doc? ( dev-libs/libxslt - dev-ruby/asciidoctor ) - app-arch/unzip - go? ( >=dev-lang/go-1.14 ) -" - -RDEPEND="${PYTHON_DEPS} - ${COMMON_DEPEND} - !x11-wm/fvwm - >=dev-libs/libevent-2.0.0 - dev-lang/perl - sys-libs/zlib - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXau - x11-libs/libxcb - x11-libs/libXcursor - x11-libs/libXdmcp - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXpm - x11-libs/libXrandr - x11-libs/libXrender - bidi? ( dev-libs/fribidi ) - lock? ( x11-misc/xlockmore ) - netpbm? ( media-libs/netpbm ) - perl? ( tk? ( - dev-lang/tk - dev-perl/Tk - >=dev-perl/X11-Protocol-0.56 - ) - ) - png? ( media-libs/libpng:= ) - readline? ( - sys-libs/ncurses:= - sys-libs/readline:= - ) - rplay? ( media-sound/rplay ) - stroke? ( dev-libs/libstroke ) - svg? ( gnome-base/librsvg:2 ) - truetype? ( - media-libs/fontconfig - x11-libs/libXft - ) - userland_GNU? ( sys-apps/debianutils )" - -DEPEND="${COMMON_DEPEND} - x11-base/xorg-proto" - -PATCHES=( - "${FILESDIR}/${P}-translucent-menus.patch" -) - -if [[ ${PV} == 9999 ]]; then - PATCHES+=( - "${FILESDIR}/${P}-goflags.patch" - ) -fi - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - einfo "The branch ${EGIT_BRANCH} will be installed." - git-r3_src_unpack - else - unpack "${P}".tar.gz - fi - unpack "${P}"-deps.tar.xz - mv go-mod ${P}/bin/FvwmPrompt/ || die -} - -src_prepare() { - default - if use doc; then - eapply "${FILESDIR}/${P}-htmldoc.patch" - fi - - sed -i '/^@FVWM_BUILD_GOLANG_TRUE@GOBUILD = $(GOCMD) build/s/$/ -mod=mod/' \ - bin/FvwmPrompt/Makefile.in || die "Updating go build paramaters failed." - - eautoreconf -} - -src_configure() { - # Non-upstream email where bugs should be sent; used in fvwm-bug. - export FVWM_BUGADDR="desktop-wm@nogentoo.org" - - # Recommended by upstream for release. Doesn't really matter for live ebuilds. - append-flags -fno-strict-aliasing - - # Signed chars are required. - for arch in arm arm64 ppc ppc64; do - use $arch && append-flags -fsigned-chars - done - - local myconf=( - --prefix=/usr - --with-imagepath=/usr/include/X11/bitmaps:/usr/include/X11/pixmaps:/usr/share/icons/fvwm - --enable-package-subdirs - $(use_enable bidi) - $(use_enable doc mandoc) - $(use_enable go golang) - $(use_enable nls) - $(use_enable nls iconv) - $(use_enable perl perllib) - $(use_enable png) - $(use_with readline readline-library) - $(use_enable svg rsvg) - $(use_enable truetype xft) - --docdir=/usr/share/doc/${P} - ) - - use readline && myconf+=( --without-termcap-library ) - - econf ${myconf[@]} -} - -src_compile() { - PREFIX="/usr" emake - if [[ ${PV} == *9999 ]]; then - use doc && emake -C doc html - fi -} - -src_install() { - emake DESTDIR="${ED}" prefix="/usr" exec_prefix="/usr" datarootdir="/usr/share" install - - dodir /etc/X11/Sessions - echo "/usr/bin/fvwm3" > "${ED}/etc/X11/Sessions/${PN}" || die - fperms a+x /etc/X11/Sessions/${PN} || die - - python_scriptinto "/usr/bin" - python_doscript "${ED}/usr/bin/FvwmCommand" "${ED}/usr/bin/fvwm-menu-desktop" - if use doc; then - if [[ ${PV} == *9999 ]]; then - HTML_DOCS=( doc/*.html ) - else - HTML_DOCS=( doc/html/*.html ) - fi - fi - einstalldocs - - make_session_desktop fvwm3 /usr/bin/fvwm3 -} - -pkg_postinst() { - if use go; then - ewarn "FvwmPrompt has been installed, it provides the functionality of both FvwmCommand and FvwmConsole." - ewarn "For compatibility with the existing fvwm2 configurations, the ebuild will install a FvwmCommand wrapper script." - ewarn "If you need FvwmConsole, install ${PN} with USE=\"-go\", but FvwmPrompt and FvwmCommnd will not be installed." - else - ewarn "Fvwmconsole has been installed, but FvwmCommand and FvwmPrompt are no longer included in this ebuild." - ewarn "If you need FvwmPrompt or FvwmCommand, install ${PN} with USE=\"go\"." - ewarn "In that case, FvwmPrompt will replace FvwmConsole and provide the same functionality in a more flexible way." - fi -} diff --git a/x11-wm/fvwm3/metadata.xml b/x11-wm/fvwm3/metadata.xml deleted file mode 100644 index 3711144d46ea..000000000000 --- a/x11-wm/fvwm3/metadata.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <longdescription lang="en"> - fvwm3 is a multiple large virtual desktop window manager. - The successor to fvwm-2.6, Fvwm3 is intended to be extremely customizable and extendible while consuming a relatively small amount of resources. - </longdescription> - <maintainer type="person" proxied="yes"> - <email>Matt.Jolly@footclan.ninja</email> - <name>Matthew Jolly</name> - </maintainer> - <maintainer type="project" proxied="proxy"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> - <use> - <flag name="go">Enable building <pkg>dev-lang/go</pkg> code (FvwmPrompt)</flag> - <flag name="lock">Enable screen locking</flag> - <flag name="netpbm">Enable NetPBM support (used by FvwmScript-ScreenDump)</flag> - <flag name="rplay">Enable rplay support</flag> - <flag name="stroke">Mouse Gesture support</flag> - </use> - <upstream> - <bugs-to>https://github.com/fvwmorg/fvwm3/issues</bugs-to> - <changelog>https://raw.githubusercontent.com/fvwmorg/fvwm3/master/CHANGELOG.md</changelog> - </upstream> -</pkgmetadata> |