Added fvwm-2.7.0-r5.
Added fvwm_icons-1.0.
This commit is contained in:
parent
403ccf5926
commit
2b33a59775
3
x11-themes/fvwm_icons/Manifest
Normal file
3
x11-themes/fvwm_icons/Manifest
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
DIST fvwm_icons-1.0.tar.bz2 328620 BLAKE2B 3df1b64903601e1db420c09d80c2907ecddbfdd8fd235b9f1a833be9ccdf20e0e8889ef6259e1c5663e107c7e7625f26fc0d7432a46571ad906436948a01f561 SHA512 79bd47492bb3854c79b5ea144467732460a0dc97a975b4ddf273d60f97a51ac71c94004293c6e073cdcbde72e6f6b38da697df6849808314937384e280f3d6d4
|
||||||
|
EBUILD fvwm_icons-1.0.ebuild 435 BLAKE2B 83f96056398ff9c42129b50bda5b0f604955227759916fd9087e76552a164d94ec96493464246222be7fe5e0182fef5708b3c6e575aa6226bb4cad0c76bd4deb SHA512 c783dd02c95df96982a550433106b8c461a8c5bb66cc53e604c3f85783be3dec5606f264b858187c7d7acfdb2224bf9f98f3a95e52b3a69b92651e4701ec2bca
|
||||||
|
MISC metadata.xml 192 BLAKE2B fef49cb9e1dda8063c379e650d4897670410d2c0641f469b8a200d5e7ec8d3f505e692277d03b583790cb1340ece9c2e8f7e7c9ff5080d42a2e0ef3fc7138a44 SHA512 bece454b8da734c7a28ce25f8080b3fca56332e57cde854c50f0b884ba3836f1af7782a1ee9f63e6aeff4830e2bca71c5c466471fc82eee75339565aab6495d5
|
20
x11-themes/fvwm_icons/fvwm_icons-1.0.ebuild
Normal file
20
x11-themes/fvwm_icons/fvwm_icons-1.0.ebuild
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DESCRIPTION="Icons for use with FVWM"
|
||||||
|
HOMEPAGE="https://www.fvwm.org/"
|
||||||
|
SRC_URI="mirror://gentoo/${P}.tar.bz2"
|
||||||
|
S="${WORKDIR}/${PN}"
|
||||||
|
|
||||||
|
LICENSE="GPL-2 FVWM"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="amd64 ~ppc ~ppc64 ~riscv ~sparc x86"
|
||||||
|
|
||||||
|
RDEPEND="|| ( x11-wm/fvwm3 >=x11-wm/fvwm-2.6.2 )"
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
insinto /usr/share/icons/fvwm
|
||||||
|
doins -r .
|
||||||
|
}
|
6
x11-themes/fvwm_icons/metadata.xml
Normal file
6
x11-themes/fvwm_icons/metadata.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<!-- maintainer-needed -->
|
||||||
|
<stabilize-allarches/>
|
||||||
|
</pkgmetadata>
|
8
x11-wm/fvwm/Manifest
Normal file
8
x11-wm/fvwm/Manifest
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
AUX README.translucency 3723 BLAKE2B aae37e9dbdf8f7b730b6947d55f0e286c1269d5cacc9ce6d2481562b054c2fa9010acf6ee0d6c994ea3cee64d3df99ef6d08dfa8c6b58706bc9bb8b477095e1b SHA512 a64ef5147e52e07d4cec8a2f3ebd1340827d0139031ef7ddaf27fc144fcc58858c3ec40eee854034423f853b2c7bdd813f66236c8a9679977084f4a2176a8ffa
|
||||||
|
AUX fvwm-2.7.0-ar.patch 1243 BLAKE2B 5d01137c867629e05f7a2c5c600b4b21d06b2c061e05a4389ad2c9ba456459020a972153594800c62e68c4411e1de1012ca32ccfe4feaa1233e90d65fa6c19c2 SHA512 533fd933c180e753e482684bfd68a0f6a95b71c622336be6080f09d4d354d16c4f7c758e79529ee873f2a39d0a6adbf73a586a3709dd8ad182c67ae5d8b50c1c
|
||||||
|
AUX fvwm-2.7.0-c99.patch 3294 BLAKE2B 930615bfde3168ca47c865badab133de33ad127c648f1a29424076b61e194a6dcf2b411e5198185acc057d49fc7fd4539397270f6610a7d80abb929dd50547cc SHA512 affc46823a1e2756b72819a08976496319a10fa43eb1089f57ac0630d3d919ba9f3a8c86c62a932be989b4f7b17dbbb3712da55d188af806396c2c18175b8cdb
|
||||||
|
AUX fvwm-2.7.0-fix-docdir.patch 361 BLAKE2B aefce92389f7ba8b8a85d67c9144e0ae6c4df6eb7ea9195ae1683a0be453e9eeaff1ad64fd1e4de174ee419c9636897639863d5d0f3f8e7fde8ade84b05358e4 SHA512 c21d5ded3ee488efc0595f44a09c9833189c5159494e96cf3c4f310aa5dfc9aba3f78452d4e9105e839e57a8a2361c9dc5840bc89e8ae67f5cf2209b6a3ab142
|
||||||
|
AUX fvwm-2.7.0-translucent-menus.diff 15303 BLAKE2B 9689b136bf17aff87bf9b2b872a8d746268849333d06595a5147be7dbc2b6e2a9f75643c67d28564663cf0571378612ebc96e1eff22e315305501cca438c9947 SHA512 34714e25ca5a30479174c1a75ef6441e9dd7e9506e52edced1c8658979059d03b07f5373b82178c2871034155e74a0bf16b55db30784575bc7e6f06555a321fd
|
||||||
|
DIST fvwm-2.7.0.tar.gz 3933529 BLAKE2B b4be7083c2946cb2a0c48673271d490a49aba5aec8407169bedc5a35f55fe8cd2724a9f6570c5e7ea110652c04956570c874256f96fa5d920a2a1ede152c0c25 SHA512 fc9076c3f07f36b0b2c7c4d2bdf7bb1a711000e39316e327173548bc99dc2b8a29b591e3644e1492f87603b576cd4a3f58ecbdd84a4384d294417b3c56c81808
|
||||||
|
EBUILD fvwm-2.7.0-r5.ebuild 4128 BLAKE2B 09311a9ec503cf02a2ec7cf1c7ad34c0a335e5d42f86f714aea3d750b34effd77394a31a304155f7e0c9744056d3c144caadab14309473664be4fadd285db431 SHA512 f3a33dcd0afee6598a7b2b4cc2aa0d1accb23b3842f9db2e63d188fcf387f333afcb8cb66e3439eb0c629bd9ca0aac4a35e5ac06bc892165fc033be31bc97257
|
||||||
|
MISC metadata.xml 736 BLAKE2B c9ff0661b5a87747a83a9d0f88f2a994e23e9e741e669fab4bd42351f74eb9dd8d55ae7d9a56d3a865eef344484a489f08359cc0e44874787fed0538f977c159 SHA512 5b06fe1d24d811fe7c408f38849c06360a5e59d98e5076214cdf041f95f5ed5ae4b625331337ce7c0d00db62fd4db6ca78f6cb2902409f340ba47d8204ab5692
|
94
x11-wm/fvwm/files/README.translucency
Normal file
94
x11-wm/fvwm/files/README.translucency
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
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.
|
||||||
|
|
41
x11-wm/fvwm/files/fvwm-2.7.0-ar.patch
Normal file
41
x11-wm/fvwm/files/fvwm-2.7.0-ar.patch
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
diff --git i/configure.ac w/configure.ac
|
||||||
|
index 97ab9e7..8cd2efb 100644
|
||||||
|
--- i/configure.ac
|
||||||
|
+++ w/configure.ac
|
||||||
|
@@ -208,6 +208,10 @@ AC_MSG_RESULT($val)
|
||||||
|
# optional libraries.
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_CPP
|
||||||
|
+AN_MAKEVAR([AR], [AC_PROG_AR])
|
||||||
|
+AN_PROGRAM([ar], [AC_PROG_AR])
|
||||||
|
+AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
|
||||||
|
+AC_PROG_AR
|
||||||
|
|
||||||
|
# added -Wall for gcc, what about for others?
|
||||||
|
if test "x$GCC" = "xyes"; then
|
||||||
|
diff --git i/libs/Makefile.in w/libs/Makefile.in
|
||||||
|
index 28b6732..c66d3e4 100644
|
||||||
|
--- i/libs/Makefile.in
|
||||||
|
+++ w/libs/Makefile.in
|
||||||
|
@@ -100,7 +100,7 @@ CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
LIBRARIES = $(noinst_LIBRARIES)
|
||||||
|
-AR = ar
|
||||||
|
+AR = @AR@
|
||||||
|
ARFLAGS = cru
|
||||||
|
AM_V_AR = $(am__v_AR_@AM_V@)
|
||||||
|
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
|
||||||
|
diff --git i/modules/FvwmScript/Widgets/Makefile.in w/modules/FvwmScript/Widgets/Makefile.in
|
||||||
|
index 8bda02d..582b046 100644
|
||||||
|
--- i/modules/FvwmScript/Widgets/Makefile.in
|
||||||
|
+++ w/modules/FvwmScript/Widgets/Makefile.in
|
||||||
|
@@ -100,7 +100,7 @@ CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
LIBRARIES = $(noinst_LIBRARIES)
|
||||||
|
-AR = ar
|
||||||
|
+AR = @AR@
|
||||||
|
ARFLAGS = cru
|
||||||
|
AM_V_AR = $(am__v_AR_@AM_V@)
|
||||||
|
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
|
99
x11-wm/fvwm/files/fvwm-2.7.0-c99.patch
Normal file
99
x11-wm/fvwm/files/fvwm-2.7.0-c99.patch
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
https://github.com/fvwmorg/fvwm/pull/100
|
||||||
|
|
||||||
|
From 0b4daddf6b88b696daf54714448b8d89a615abf2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Thu, 24 Nov 2022 13:06:50 +0100
|
||||||
|
Subject: [PATCH 1/3] configure: Do not require support for implicit ints
|
||||||
|
|
||||||
|
Implicit ints have not been part of C since 1999, and future
|
||||||
|
compilers will disable support for them by default. Fortunatenly,
|
||||||
|
only one configure check needs adjusting.
|
||||||
|
---
|
||||||
|
acinclude.m4 | 2 +-
|
||||||
|
configure.ac | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/acinclude.m4 b/acinclude.m4
|
||||||
|
index 8b74ff1e5..b66042f9f 100644
|
||||||
|
--- a/acinclude.m4
|
||||||
|
+++ b/acinclude.m4
|
||||||
|
@@ -30,7 +30,7 @@ if test "$ac_cv_func_select" = yes; then
|
||||||
|
#ifdef HAVE_SYS_SOCKET_H
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#endif],
|
||||||
|
-[extern select ($ac_cv_type_fd_set_size_t,
|
||||||
|
+[extern int select ($ac_cv_type_fd_set_size_t,
|
||||||
|
$ac_cv_type_fd_set *, $ac_cv_type_fd_set *, $ac_cv_type_fd_set *,
|
||||||
|
$ac_type_timeval *);],
|
||||||
|
[ac_found=yes ; break 3],ac_found=no)
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 97ab9e7a1..c9fcede6a 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -220,7 +220,7 @@ AC_MINIX
|
||||||
|
|
||||||
|
# catch -Werror and similar options when running configure
|
||||||
|
AC_TRY_COMPILE([#include <stdio.h>],
|
||||||
|
-[int i; static j; int *p; char *c;
|
||||||
|
+[int i; int *p; char *c;
|
||||||
|
switch (*p = p = *c) { case 0: printf("%Q", c, p); }
|
||||||
|
*c = &i; c = p;
|
||||||
|
while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1));
|
||||||
|
|
||||||
|
From 6b9d100ae4e784821b5189474dc58e646417bcf6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Thu, 24 Nov 2022 13:07:56 +0100
|
||||||
|
Subject: [PATCH 2/3] acinclude.m4: Add missing <unistd.h> to
|
||||||
|
AM_SAFETY_CHECK_MKSTEMP
|
||||||
|
|
||||||
|
Otherwise, the check fails on a compiler which does not support
|
||||||
|
implicit function declarations (a language feature removed in 1999).
|
||||||
|
---
|
||||||
|
acinclude.m4 | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/acinclude.m4 b/acinclude.m4
|
||||||
|
index b66042f9f..4dee2abeb 100644
|
||||||
|
--- a/acinclude.m4
|
||||||
|
+++ b/acinclude.m4
|
||||||
|
@@ -1154,6 +1154,9 @@ AC_DEFUN([AM_SAFETY_CHECK_MKSTEMP],[
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
+#ifdef HAVE_UNISTD_H
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#endif
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
char template[128];
|
||||||
|
|
||||||
|
From 33537b8ae5a302e4016dc1c6cfe5577fb3fa36c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Tue, 19 Dec 2023 13:24:50 +0100
|
||||||
|
Subject: [PATCH 3/3] configure: Further defang the -Werror check
|
||||||
|
|
||||||
|
Incompatible pointer types are actually errors (in the sense
|
||||||
|
that they are invalid C). Compilers have merely tolerated them as
|
||||||
|
warnings for backwards compatibility. This is changing with Clang 16
|
||||||
|
and GCC 14, so relax the check a little.
|
||||||
|
---
|
||||||
|
configure.ac | 5 ++---
|
||||||
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index c9fcede6a..2e9615b2b 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -220,9 +220,8 @@ AC_MINIX
|
||||||
|
|
||||||
|
# catch -Werror and similar options when running configure
|
||||||
|
AC_TRY_COMPILE([#include <stdio.h>],
|
||||||
|
-[int i; int *p; char *c;
|
||||||
|
- switch (*p = p = *c) { case 0: printf("%Q", c, p); }
|
||||||
|
- *c = &i; c = p;
|
||||||
|
+[int unused; int *p; char *c;
|
||||||
|
+ printf("%Q", c, p);
|
||||||
|
while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1));
|
||||||
|
], , AC_MSG_ERROR("
|
||||||
|
configure is not able to compile programs with warnings. Please
|
||||||
|
|
13
x11-wm/fvwm/files/fvwm-2.7.0-fix-docdir.patch
Normal file
13
x11-wm/fvwm/files/fvwm-2.7.0-fix-docdir.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
https://bugs.gentoo.org/927863
|
||||||
|
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -102,7 +102,7 @@
|
||||||
|
PPACKAGE=`echo "${PACKAGE}" | "$SED" -e "${transform}"`
|
||||||
|
FVWM_MODULESUBDIR=/${PPACKAGE}/${VERSION}
|
||||||
|
FVWM_DATASUBDIR=/${PPACKAGE}
|
||||||
|
-FVWM_DOCSUBDIR=/doc/${PPACKAGE}
|
||||||
|
+FVWM_DOCSUBDIR=/doc/${PF}
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(package-subdirs,
|
||||||
|
AS_HELP_STRING([--disable-package-subdirs],
|
507
x11-wm/fvwm/files/fvwm-2.7.0-translucent-menus.diff
Normal file
507
x11-wm/fvwm/files/fvwm-2.7.0-translucent-menus.diff
Normal file
|
@ -0,0 +1,507 @@
|
||||||
|
diff --git i/fvwm/colorset.c w/fvwm/colorset.c
|
||||||
|
index e10f1d1..0217cc3 100644
|
||||||
|
--- i/fvwm/colorset.c
|
||||||
|
+++ w/fvwm/colorset.c
|
||||||
|
@@ -164,6 +164,8 @@ static char *csetopts[] =
|
||||||
|
"NoIconTint",
|
||||||
|
"IconAlpha",
|
||||||
|
|
||||||
|
+ "Translucent",
|
||||||
|
+ "NoTranslucent",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -625,6 +627,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;
|
||||||
|
@@ -637,6 +640,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;
|
||||||
|
@@ -764,6 +768,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;
|
||||||
|
@@ -930,6 +938,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"))
|
||||||
|
@@ -1632,6 +1658,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 ----------
|
||||||
|
*/
|
||||||
|
@@ -1728,6 +1775,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,
|
||||||
|
@@ -1745,6 +1793,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 */
|
||||||
|
@@ -1756,6 +1805,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++;
|
||||||
|
diff --git i/fvwm/menuroot.h w/fvwm/menuroot.h
|
||||||
|
index d9f33d6..de5e2d6 100644
|
||||||
|
--- i/fvwm/menuroot.h
|
||||||
|
+++ w/fvwm/menuroot.h
|
||||||
|
@@ -146,6 +146,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 */
|
||||||
|
diff --git i/fvwm/menus.c w/fvwm/menus.c
|
||||||
|
index 345ac06..6daf035 100644
|
||||||
|
--- i/fvwm/menus.c
|
||||||
|
+++ w/fvwm/menus.c
|
||||||
|
@@ -78,6 +78,19 @@
|
||||||
|
#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 ------------------------------------ */
|
||||||
|
|
||||||
|
/* This external is safe. It's written only during startup. */
|
||||||
|
@@ -220,6 +233,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 ---------------------------- */
|
||||||
|
|
||||||
|
@@ -381,12 +396,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),
|
||||||
|
@@ -1912,6 +1937,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
|
||||||
|
{
|
||||||
|
@@ -2716,7 +2742,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)
|
||||||
|
{
|
||||||
|
@@ -3525,10 +3581,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(
|
||||||
|
@@ -3707,10 +3760,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)++;
|
||||||
|
@@ -6274,16 +6338,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);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -6324,10 +6494,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))
|
||||||
|
@@ -6951,10 +7118,12 @@ void UpdateMenuColorset(int cset)
|
||||||
|
SetWindowBackground(
|
||||||
|
dpy, MR_WINDOW(mr), MR_WIDTH(mr),
|
||||||
|
MR_HEIGHT(mr),
|
||||||
|
- &Colorset[ST_CSET_MENU(ms)],
|
||||||
|
- Pdepth,
|
||||||
|
+ &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) ||
|
||||||
|
diff --git i/fvwm/menus.h w/fvwm/menus.h
|
||||||
|
index 28e9db3..6b620b2 100644
|
||||||
|
--- i/fvwm/menus.h
|
||||||
|
+++ w/fvwm/menus.h
|
||||||
|
@@ -15,6 +15,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;
|
||||||
|
diff --git i/libs/Colorset.h w/libs/Colorset.h
|
||||||
|
index d610b52..6c1892e 100644
|
||||||
|
--- i/libs/Colorset.h
|
||||||
|
+++ w/libs/Colorset.h
|
||||||
|
@@ -51,6 +51,10 @@ typedef struct
|
||||||
|
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;
|
||||||
|
|
||||||
|
@@ -78,6 +82,7 @@ typedef struct
|
||||||
|
#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 */
|
||||||
|
@@ -153,6 +158,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)
|
||||||
|
*/
|
||||||
|
diff --git i/libs/PictureGraphics.c w/libs/PictureGraphics.c
|
||||||
|
index f861726..a2fdbea 100644
|
||||||
|
--- i/libs/PictureGraphics.c
|
||||||
|
+++ w/libs/PictureGraphics.c
|
||||||
|
@@ -1360,7 +1360,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)
|
||||||
|
diff --git i/libs/PictureGraphics.h w/libs/PictureGraphics.h
|
||||||
|
index ec75601..5e0001d 100644
|
||||||
|
--- i/libs/PictureGraphics.h
|
||||||
|
+++ w/libs/PictureGraphics.h
|
||||||
|
@@ -122,7 +122,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,
|
172
x11-wm/fvwm/fvwm-2.7.0-r5.ebuild
Normal file
172
x11-wm/fvwm/fvwm-2.7.0-r5.ebuild
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{10..13} )
|
||||||
|
inherit autotools flag-o-matic python-single-r1 desktop
|
||||||
|
|
||||||
|
DESCRIPTION="An extremely powerful ICCCM-compliant multiple virtual desktop window manager"
|
||||||
|
HOMEPAGE="https://www.fvwm.org/"
|
||||||
|
SRC_URI="https://github.com/fvwmorg/fvwm/releases/download/${PV}/${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="GPL-2+ FVWM"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha amd64 ~arm ppc ~ppc64 ~riscv ~sparc x86"
|
||||||
|
IUSE="bidi debug doc netpbm nls perl png readline stroke svg tk truetype +vanilla xinerama lock"
|
||||||
|
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||||
|
|
||||||
|
COMMON_DEPEND="
|
||||||
|
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
|
||||||
|
virtual/libiconv
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
dev-python/pyxdg[${PYTHON_USEDEP}]
|
||||||
|
')
|
||||||
|
bidi? ( dev-libs/fribidi )
|
||||||
|
nls? ( virtual/libintl )
|
||||||
|
png? ( media-libs/libpng:0= )
|
||||||
|
readline? (
|
||||||
|
sys-libs/ncurses:0=
|
||||||
|
sys-libs/readline:0=
|
||||||
|
)
|
||||||
|
stroke? ( dev-libs/libstroke )
|
||||||
|
svg? ( gnome-base/librsvg )
|
||||||
|
truetype? (
|
||||||
|
media-libs/fontconfig
|
||||||
|
x11-libs/libXft
|
||||||
|
)
|
||||||
|
xinerama? ( x11-libs/libXinerama )
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
${COMMON_DEPEND}
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
dev-lang/perl
|
||||||
|
perl? ( tk? (
|
||||||
|
dev-lang/tk
|
||||||
|
dev-perl/Tk
|
||||||
|
>=dev-perl/X11-Protocol-0.56
|
||||||
|
)
|
||||||
|
)
|
||||||
|
lock? ( x11-misc/xlockmore )
|
||||||
|
netpbm? ( media-libs/netpbm )
|
||||||
|
"
|
||||||
|
DEPEND="
|
||||||
|
${COMMON_DEPEND}
|
||||||
|
x11-base/xorg-proto
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
dev-lang/perl
|
||||||
|
dev-libs/libxslt
|
||||||
|
virtual/pkgconfig
|
||||||
|
"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if ! use vanilla; then
|
||||||
|
# Enables fast translucent menus; patch from fvwm-user mailing list.
|
||||||
|
eapply "${FILESDIR}/${PN}-2.7.0-translucent-menus.diff"
|
||||||
|
fi
|
||||||
|
|
||||||
|
eapply "${FILESDIR}"/fvwm-2.7.0-ar.patch # bug #474528
|
||||||
|
eapply "${FILESDIR}"/fvwm-2.7.0-c99.patch
|
||||||
|
eapply "${FILESDIR}"/fvwm-2.7.0-fix-docdir.patch
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local myeconfargs=(
|
||||||
|
--libexecdir="${EPREFIX}"/usr/$(get_libdir)
|
||||||
|
--with-imagepath=/usr/include/X11/bitmaps:/usr/include/X11/pixmaps:/usr/share/icons/fvwm
|
||||||
|
--enable-iconv
|
||||||
|
--enable-package-subdirs
|
||||||
|
--enable-mandoc
|
||||||
|
--without-rplay-library
|
||||||
|
$(use_enable bidi)
|
||||||
|
$(use_enable debug debug-msgs)
|
||||||
|
$(use_enable debug command-log)
|
||||||
|
$(use_enable doc htmldoc)
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_enable perl perllib)
|
||||||
|
$(use_enable png)
|
||||||
|
$(use_with readline readline-library)
|
||||||
|
$(use_with stroke stroke-library)
|
||||||
|
$(use_enable svg rsvg)
|
||||||
|
$(use_enable truetype xft)
|
||||||
|
$(use_enable xinerama)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Non-upstream email where bugs should be sent; used in fvwm-bug.
|
||||||
|
export FVWM_BUGADDR="maintainer-needed@gentoo.org"
|
||||||
|
|
||||||
|
# Recommended by upstream, reference ????
|
||||||
|
append-flags -fno-strict-aliasing
|
||||||
|
|
||||||
|
# bug #864959
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
# Signed chars are required.
|
||||||
|
use ppc && append-flags -fsigned-char
|
||||||
|
|
||||||
|
use readline && myeconfargs+=( --without-termcap-library )
|
||||||
|
|
||||||
|
export ac_cv_path_PYTHON="${PYTHON}"
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
make_session_desktop fvwm /usr/bin/fvwm
|
||||||
|
|
||||||
|
if ! use lock; then
|
||||||
|
find "${ED}" -name '*fvwm-menu-xlock' -delete || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use perl; then
|
||||||
|
if ! use tk; then
|
||||||
|
rm "${ED}"/usr/share/fvwm/perllib/FVWM/Module/Tk.pm || die
|
||||||
|
rm "${ED}"/usr/share/fvwm/perllib/FVWM/Module/Toolkit.pm || die
|
||||||
|
find "${ED}"/usr/share/fvwm/perllib -depth -type d -exec rmdir '{}' \; || die
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Completely wipe it if ! use perl
|
||||||
|
rm -r "${ED}"/usr/bin/fvwm-perllib "${ED}"/usr/share/man/man1/fvwm-perllib.1 || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Utility for testing FVWM behaviour by creating a simple window with
|
||||||
|
# configurable hints.
|
||||||
|
if use debug; then
|
||||||
|
dobin tests/hints/hints_test
|
||||||
|
newdoc tests/hints/README README.hints
|
||||||
|
fi
|
||||||
|
|
||||||
|
exeinto /etc/X11/Sessions
|
||||||
|
newexe - ${PN} <<-EOF
|
||||||
|
#!/bin/sh
|
||||||
|
${PN}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
dodoc docs/{COMMANDS,DEVELOPERS.md}
|
||||||
|
|
||||||
|
# README file for translucent menus patch.
|
||||||
|
if ! use vanilla; then
|
||||||
|
dodoc "${FILESDIR}"/README.translucency
|
||||||
|
ewarn "You are using a patched build, so, please, don't"
|
||||||
|
ewarn "report bugs at the fvwm-workers list unless you are"
|
||||||
|
ewarn "also able to reproduce them with a vanilla build (USE=vanilla)."
|
||||||
|
fi
|
||||||
|
}
|
19
x11-wm/fvwm/metadata.xml
Normal file
19
x11-wm/fvwm/metadata.xml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<!-- maintainer-needed -->
|
||||||
|
<longdescription lang="en">
|
||||||
|
fvwm is an ICCCM-compliant X window manager providing a 3D look for
|
||||||
|
window decorations, multiple discontiguous virtual desktops, a high
|
||||||
|
degree of configurability, and an external module interface for
|
||||||
|
implementing functional extensions.
|
||||||
|
</longdescription>
|
||||||
|
<use>
|
||||||
|
<flag name="lock">Enable screen locking</flag>
|
||||||
|
<flag name="netpbm">Enable NetPBM support (used by FvwmScript-ScreenDump)</flag>
|
||||||
|
<flag name="stroke">Mouse Gesture support</flag>
|
||||||
|
</use>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">fvwmorg/fvwm</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
Loading…
Reference in a new issue