diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-03-15 06:20:30 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-03-15 06:20:30 +0000 |
commit | bb007f0b04c719fd2b846d177c3c4739fdb7c318 (patch) | |
tree | 80f756c3d190f4dbf28e8016c211ab618a50ccb9 /x11-wm/fvwm3 | |
parent | 1f048d9b860b8c7b69ac8dd085edc9ee3191b2d5 (diff) |
gentoo auto-resync : 15:03:2023 - 06:20:30
Diffstat (limited to 'x11-wm/fvwm3')
-rw-r--r-- | x11-wm/fvwm3/Manifest | 9 | ||||
-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.6a.ebuild | 167 | ||||
-rw-r--r-- | x11-wm/fvwm3/fvwm3-9999.ebuild | 44 | ||||
-rw-r--r-- | x11-wm/fvwm3/metadata.xml | 1 |
7 files changed, 188 insertions, 576 deletions
diff --git a/x11-wm/fvwm3/Manifest b/x11-wm/fvwm3/Manifest index 051319dcea2d..a7f8e5fad2ee 100644 --- a/x11-wm/fvwm3/Manifest +++ b/x11-wm/fvwm3/Manifest @@ -1,10 +1,9 @@ AUX README.translucency 3723 BLAKE2B aae37e9dbdf8f7b730b6947d55f0e286c1269d5cacc9ce6d2481562b054c2fa9010acf6ee0d6c994ea3cee64d3df99ef6d08dfa8c6b58706bc9bb8b477095e1b SHA512 a64ef5147e52e07d4cec8a2f3ebd1340827d0139031ef7ddaf27fc144fcc58858c3ec40eee854034423f853b2c7bdd813f66236c8a9679977084f4a2176a8ffa AUX fvwm3-1.0.4-htmldoc.patch 2024 BLAKE2B 247d05e606e55515b800143a103e5521cf6cc1568f760bb4f703ca7b5ecfb83c305341f8bc249545830295b686c78c7241cc4167a40834aadb3b57fc27caef18 SHA512 bbe197296ffaae8af6d26a0ad92f28e3a9628a1a3653a481d8279ff0fc85922efc084696ae3e2a1527457007bfbb0e17173d942d5f08285ff48a92427f96a4a2 AUX fvwm3-1.0.4-translucent-menus.patch 14629 BLAKE2B d9aa8b8f2fbde6bf37d39d9fa78f959405dff6518cf1819bbffc70b3d7583618638a3df77beb96925dcf4540b834ba63c2ff1e2cefce49743d73154b9fe58d74 SHA512 4519fba0386b3d1b207540c4916fd18e989189d50b3e1aaa1a02d34774c406fcd8dfa53592882694fdc2e1bb6e3d1e3cd0ada2656222df037bbcdeccf1f04fbe -AUX fvwm3-9999-goflags.patch 224 BLAKE2B 9050c078af7506d821777de92b93bff4b4458106f7df30bf4758528ca27da8504a509329b18a0aae60195f8dd5376ccf04b8661be7a24bc4ec0871446c100291 SHA512 e81d47474c073e1c4c8e13de4888c840cf5c4ee8d98517526fbb24ab7ee13f4f1c3db1f1153eff2d59e9a446963d89687abbc2e53a4086f878b2e63f48e83e86 -AUX fvwm3-9999-htmldoc.patch 960 BLAKE2B 69e4ce716cb09dde50b168d6cd14cd7c01ea4a591fa9baa8d33311276906912e9011f3cd3c42dd30e07fe28776d7638821c17001b8e56601cd42ad1159e36c59 SHA512 07258f4ae3e2d232e1e81ea885f64b14d23ece217317f06c9dccc29b15ad356f36976e570df1420132c1ff3acb08adc668194ad6cabfb453cb01cadaf933491f -AUX fvwm3-9999-translucent-menus.patch 14684 BLAKE2B 52915fde481c6b821b7bf9f5b90f2b7a7f0e96f46cb3f54d39304abefd3db5f2937e6b8eb16c27c4b017d8bbcf6ec1362bf0e7f842ecaa878cc97ec59e88a6ff SHA512 2c1d36e84542be65270595b8ce8e5ed624fa62594446ffe597f18ae85bbfcf3bfbf3030dc0bbcf31dbd43d01411af053a8daa86797540d5a8dcdaee4341fd2ba DIST fvwm3-1.0.4.tar.gz 4691719 BLAKE2B 4ce93b1a2d110b570b5fc8b253f9ff8ea1f44e5470c6e1bc136a53ebe53a23abe3d075bf351fca54ac110ea5731f9b44c59c83186d320e7509bf26e5144436ca SHA512 b72a1ebeba7c55214603fd43ea439f7283b3c79e39d2671a67b9512c67dcea111377eab2131ed0b18a72f6b772b0d048abe08f52565708367465ed9bb14e85f6 +DIST fvwm3-1.0.6a.tar.gz 4538100 BLAKE2B c71087eb09a17760ff5754060c4639228f268a0f3640ce0d92d7d8f807aa0df36eac998da0ed943787f1bb369ac90b7b2ca65d922120d41ed81a940be7756f4f SHA512 7577e0dde1f7c5c54024207cf48ab5b816c87fc163735e44eb72e66561c67c08f6a06e7fbf5c89fa6180b692ce25e5121845476d0d1dcfb8273b0aa7321d28f9 EBUILD fvwm3-1.0.4-r2.ebuild 4319 BLAKE2B d9b573097a3b1c37c57ac223e0c659942a17c4e3a326e31292e16a3f9a0bb950949dfcb83402fad01650f89f984d55df09c8f1f88a05a1d952c7cc0275c62dc0 SHA512 5e912a106b192b0e550a22ebaa43229a5637d2d5a89fa4e10f16ad4963e31484b63f663465395aaae07f27aea6cea048c869d5cf13104568b9e7d18d7671c563 -EBUILD fvwm3-9999.ebuild 4325 BLAKE2B 56b6fba0261f05b6a6a3efbaadd7cfe6f8019bcae4da0e717b349f122ff4921b336c266b5e7301e0219d92995a58343d8fbae93640c8423ceae7fd9a83b159dd SHA512 43fae7274902c78daf3fabd5cc506f43a5b4186ccd570021c1af3d4f294247ba7da85f12ae8ccb1edaeca3515571ed7b923f98cbe0b959eaaabb35283e8c9c1f -MISC metadata.xml 1114 BLAKE2B d9182ba23ad6414ea2fe9d0499a360cbe890476181fff99be4f766158a3aeff0363bdc15ffbb33643c2d1d71458f75c6adc535bf4a79fa44cb383fe5975bb147 SHA512 607e8e71b652ed5a537922bd5bfea0bddf7c7ebdb17e143e60fb05a2b1a99dbadfc2086cd5d542492a1e7650c190ed020497a8cdfbdb3f893d287ae1a82c43d6 +EBUILD fvwm3-1.0.6a.ebuild 4191 BLAKE2B 52523d243ba77d83afb5bacfb1900da1cc5061f2de320821eb7b475666a3fc312c871ea9e6e5156a74f6623df6612a46eb6afd4be42cffdd69d964886e442754 SHA512 b922f6cc11fbcf2d99682a22cf255a1cee075d44d6f2b9fe1210472a8227faadfd0c723b1eb23639b255f27be878e520b81ad3b0a30ee037c453130c4a243464 +EBUILD fvwm3-9999.ebuild 4081 BLAKE2B b1ed17b144ae1b4524f483b7c444a676e32bd0fd85d004a3623365d8c78b8dcc61683b42b612777ec897f03eaf7ecbde0d79c98214378fc3382716eb2c6d6e15 SHA512 8107c40171edf4ccdc27a9e76bf52a936e52cf27930261c89d56c953e6c6e966b30cc7e6cddf83ecbef2298ff460a564ffe5a19d8b5879ef3fa1d3169075b814 +MISC metadata.xml 1167 BLAKE2B 9298a152a101f678f0aac744cd1348302dae392e2fa6d37aaf4616f368d6bb96e09a01aa50700bc59672fa5710ebcf5f49911e6bf2205bd6f157d50fb831741d SHA512 90bde9731cc4b0147dbe9072c634bafce51ec5b33e636e16ab19b81538863ab9c103ed40b0b97042a9c11a01e68c3c81ffb1be542909bf145a16a52ce8c6f396 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.6a.ebuild b/x11-wm/fvwm3/fvwm3-1.0.6a.ebuild new file mode 100644 index 000000000000..cc412650d214 --- /dev/null +++ b/x11-wm/fvwm3/fvwm3-1.0.6a.ebuild @@ -0,0 +1,167 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +GO_OPTIONAL=1 +inherit autotools desktop flag-o-matic go-module python-single-r1 toolchain-funcs + +DESCRIPTION="A multiple large virtual desktop window manager derived from fvwm" +HOMEPAGE="https://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 ~riscv" +fi + +LICENSE="GPL-2+ FVWM + go? ( Apache-2.0 BSD MIT )" +SLOT="0" +IUSE="bidi debug doc +go netpbm nls perl readline stroke svg tk 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-lang/perl + dev-libs/glib:2 + dev-libs/libevent:= + media-libs/fontconfig + media-libs/libpng:= + sys-apps/debianutils + 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/libXft + 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 + ) + ) + readline? ( + sys-libs/ncurses:= + sys-libs/readline:= + ) + stroke? ( dev-libs/libstroke ) + svg? ( + gnome-base/librsvg:2 + x11-libs/cairo + )" + +DEPEND="${COMMON_DEPEND} + x11-base/xorg-proto" + +src_prepare() { + default + use go && ( sed -e 's/GOFLAGS=-ldflags="-s -w"/GOFLAGS=/' \ + -i bin/FvwmPrompt/Makefile.am || die ) + # Patch configure to allow later go versions + sed -e 's/1.19\*)$/1.19*|1.20*|1.21*)/' -i configure.ac || die + + 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=( + --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_with readline readline-library) + $(use_enable svg rsvg) + --enable-png + ) + + use readline && myconf+=( --without-termcap-library ) + + econf "${myconf[@]}" +} + +src_compile() { + PREFIX="${EPREFIX}/usr" emake AR="$(tc-getAR)" + if [[ ${PV} == *9999 ]]; then + use doc && emake -C doc + 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" + 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 FvwmCommand 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 index 1d502d3e87c8..958bb6e0c085 100644 --- a/x11-wm/fvwm3/fvwm3-9999.ebuild +++ b/x11-wm/fvwm3/fvwm3-9999.ebuild @@ -22,14 +22,21 @@ fi LICENSE="GPL-2+ FVWM go? ( Apache-2.0 BSD MIT )" SLOT="0" -IUSE="bidi debug doc go netpbm nls perl readline stroke svg tk vanilla lock" +IUSE="bidi debug doc +go netpbm nls perl readline stroke svg tk 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 ) + 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=" @@ -72,7 +79,6 @@ RDEPEND="${PYTHON_DEPS} >=dev-perl/X11-Protocol-0.56 ) ) - media-libs/libpng:= readline? ( sys-libs/ncurses:= sys-libs/readline:= @@ -86,21 +92,10 @@ RDEPEND="${PYTHON_DEPS} DEPEND="${COMMON_DEPEND} x11-base/xorg-proto" -PATCHES=( - "${FILESDIR}/${P}-translucent-menus.patch" -) - -if [[ ${PV} == 9999 ]]; then - PATCHES+=( - "${FILESDIR}/${P}-goflags.patch" - ) -fi - src_prepare() { default - if use doc; then - eapply "${FILESDIR}/${P}-htmldoc.patch" - fi + use go && ( sed -e 's/GOFLAGS=-ldflags="-s -w"/GOFLAGS=/' \ + -i bin/FvwmPrompt/Makefile.am || die ) eautoreconf } @@ -133,13 +128,13 @@ src_configure() { use readline && myconf+=( --without-termcap-library ) - econf ${myconf[@]} + econf "${myconf[@]}" } src_compile() { PREFIX="${EPREFIX}/usr" emake AR="$(tc-getAR)" if [[ ${PV} == *9999 ]]; then - use doc && emake -C doc html + use doc && emake -C doc fi } @@ -148,17 +143,10 @@ src_install() { dodir /etc/X11/Sessions echo "/usr/bin/fvwm3" > "${ED}/etc/X11/Sessions/${PN}" || die - fperms a+x /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 @@ -168,9 +156,9 @@ 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." + ewarn "If you need FvwmConsole, install ${PN} with USE=\"-go\", but FvwmPrompt and FvwmCommand will not be installed." else - ewarn "Fvwmconsole has been installed, but FvwmCommand and FvwmPrompt are no longer included in this ebuild." + 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 index 569ae86d8fb1..41f1d6eda8d2 100644 --- a/x11-wm/fvwm3/metadata.xml +++ b/x11-wm/fvwm3/metadata.xml @@ -20,6 +20,7 @@ <flag name="stroke">Mouse Gesture support</flag> </use> <upstream> + <remote-id type="github">fvwmorg/fvwm3</remote-id> <bugs-to>https://github.com/fvwmorg/fvwm3/issues</bugs-to> <changelog>https://raw.githubusercontent.com/fvwmorg/fvwm3/master/CHANGELOG.md</changelog> </upstream> |