Version bump
authorMatti Bickel <mabi@gentoo.org>
Sun, 25 Mar 2007 18:17:41 +0000 (18:17 +0000)
committerMatti Bickel <mabi@gentoo.org>
Sun, 25 Mar 2007 18:17:41 +0000 (18:17 +0000)
Package-Manager: portage-2.1.2.2

x11-wm/ion3/ChangeLog
x11-wm/ion3/Manifest
x11-wm/ion3/files/20070318/201_all_fix-paths.patch [new file with mode: 0644]
x11-wm/ion3/files/20070318/202_all_fix-menus.patch [new file with mode: 0644]
x11-wm/ion3/files/20070318/205_all_ion-lock.patch [new file with mode: 0644]
x11-wm/ion3/files/20070318/207_all_bindings-manpage.patch [new file with mode: 0644]
x11-wm/ion3/files/digest-ion3-20070318 [new file with mode: 0644]
x11-wm/ion3/files/xft-ion3-20070318.patch [new file with mode: 0644]
x11-wm/ion3/ion3-20070318.ebuild [new file with mode: 0644]

index f6e4bd7cea06de0d3d99c47e9874710fc84a8ecd..c23e28546b0f4bb31927c87a0dc62d4d72cdd6b5 100644 (file)
@@ -1,6 +1,16 @@
 # ChangeLog for x11-wm/ion3
 # Copyright 2000-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ChangeLog,v 1.45 2007/03/11 09:40:37 mabi Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ChangeLog,v 1.46 2007/03/25 18:17:41 mabi Exp $
+
+*ion3-20070318 (25 Mar 2007)
+
+  25 Mar 2007; Matti Bickel <mabi@gentoo.org>
+  +files/20070318/201_all_fix-paths.patch,
+  +files/20070318/205_all_ion-lock.patch, +files/xft-ion3-20070318.patch,
+  +files/20070318/202_all_fix-menus.patch,
+  +files/20070318/207_all_bindings-manpage.patch, +ion3-20070318.ebuild:
+  Version bump; readded iontruetype USE for problems with non latin fonts,
+  added docs
 
 *ion3-20070203 (11 Mar 2007)
 
index 08eb0ac1d5212c41f785d62455674fccc675d49a..39a44e5ed79e48c8f6989e7598bf5879e8f1759b 100644 (file)
@@ -33,6 +33,22 @@ AUX 20070203/207_all_bindings-manpage.patch 3159 RMD160 efcb802e1e00b85398facc94
 MD5 dbd4e494033db439cd0610ef880e2659 files/20070203/207_all_bindings-manpage.patch 3159
 RMD160 efcb802e1e00b85398facc945053fe793ed2d223 files/20070203/207_all_bindings-manpage.patch 3159
 SHA256 1e5d315510dde32a94b0e967cc1a315cd84cbb43f03b9a928ad80ee7a75945ba files/20070203/207_all_bindings-manpage.patch 3159
+AUX 20070318/201_all_fix-paths.patch 2578 RMD160 1e507b2b7493f94c9e63de2d1c5e7a4a370f2bbe SHA1 92cb162401d7e970a1429437bfeef9c9684f62fb SHA256 e1eca4fca542aeeb2b6dd39b7f082d49dc7c9b526bb23b668c72fab639c2c76c
+MD5 e9d2532398ca5bebda1b6e3758227006 files/20070318/201_all_fix-paths.patch 2578
+RMD160 1e507b2b7493f94c9e63de2d1c5e7a4a370f2bbe files/20070318/201_all_fix-paths.patch 2578
+SHA256 e1eca4fca542aeeb2b6dd39b7f082d49dc7c9b526bb23b668c72fab639c2c76c files/20070318/201_all_fix-paths.patch 2578
+AUX 20070318/202_all_fix-menus.patch 990 RMD160 a49c2e8c44c4c7ddceae989a0637cb4ca51647f4 SHA1 ef72a6d5b100c8148d96f6718bc95a456a3b51eb SHA256 2f9404a884e28f9d7ff42ba6ae24df99436b7a9f3c75560282fb87daa9fdf9af
+MD5 aecae9e8f4e48e9b74532a3309643598 files/20070318/202_all_fix-menus.patch 990
+RMD160 a49c2e8c44c4c7ddceae989a0637cb4ca51647f4 files/20070318/202_all_fix-menus.patch 990
+SHA256 2f9404a884e28f9d7ff42ba6ae24df99436b7a9f3c75560282fb87daa9fdf9af files/20070318/202_all_fix-menus.patch 990
+AUX 20070318/205_all_ion-lock.patch 780 RMD160 9834836d55fb390f06d8e3c1ea821ef01c1a74b8 SHA1 6bd0278dd7d56fd9f1025fae8a00db24bf0e781f SHA256 ea4ad810355fab8a848e6506a6a2762b5ab9c37f28a7edac73030e6026bc3fae
+MD5 4f2dcedcbf6d885723d1b888f0aacb87 files/20070318/205_all_ion-lock.patch 780
+RMD160 9834836d55fb390f06d8e3c1ea821ef01c1a74b8 files/20070318/205_all_ion-lock.patch 780
+SHA256 ea4ad810355fab8a848e6506a6a2762b5ab9c37f28a7edac73030e6026bc3fae files/20070318/205_all_ion-lock.patch 780
+AUX 20070318/207_all_bindings-manpage.patch 3159 RMD160 efcb802e1e00b85398facc945053fe793ed2d223 SHA1 c9a317080edd7a4f297c40572ca5a6474851ca87 SHA256 1e5d315510dde32a94b0e967cc1a315cd84cbb43f03b9a928ad80ee7a75945ba
+MD5 dbd4e494033db439cd0610ef880e2659 files/20070318/207_all_bindings-manpage.patch 3159
+RMD160 efcb802e1e00b85398facc945053fe793ed2d223 files/20070318/207_all_bindings-manpage.patch 3159
+SHA256 1e5d315510dde32a94b0e967cc1a315cd84cbb43f03b9a928ad80ee7a75945ba files/20070318/207_all_bindings-manpage.patch 3159
 AUX ion3-20060317-truetype.patch 19704 RMD160 6a11b4d81926224171618c036b5597948e23d89a SHA1 c387e111c65d098793ef59d020225d3770688a2a SHA256 a1934d7ea40f959579b4b4b20f08bcbc9f037beb7e50737f8110273f7f5f58d5
 MD5 f77e47b00b912f3b0b6bb35a53f158a1 files/ion3-20060317-truetype.patch 19704
 RMD160 6a11b4d81926224171618c036b5597948e23d89a files/ion3-20060317-truetype.patch 19704
@@ -49,12 +65,20 @@ AUX pwm3.desktop 170 RMD160 7a33137ccf3857cacd7ff693df2e8952e16e3a84 SHA1 7ff679
 MD5 e5e408ab1f83116c2138a26b20c86653 files/pwm3.desktop 170
 RMD160 7a33137ccf3857cacd7ff693df2e8952e16e3a84 files/pwm3.desktop 170
 SHA256 e068670634d31e58db4f54e703707f7908d30ced7f765e30ab590615b3d5dccd files/pwm3.desktop 170
+AUX xft-ion3-20070318.patch 19100 RMD160 7d0d01e42d65961655046f6485011425311e8723 SHA1 618fbe025e634c3aac844bdc1a2210dbecb60215 SHA256 d5e57e91185ae5c508ed036d689b5ea58e7322b633705503cfaa5ac18ff9f936
+MD5 319a7254cf4093a9e84993515b9462ec files/xft-ion3-20070318.patch 19100
+RMD160 7d0d01e42d65961655046f6485011425311e8723 files/xft-ion3-20070318.patch 19100
+SHA256 d5e57e91185ae5c508ed036d689b5ea58e7322b633705503cfaa5ac18ff9f936 files/xft-ion3-20070318.patch 19100
 DIST ion-3ds-20060317.tar.gz 613630 RMD160 0be63bdc4aae60199b3f8d82c185866798246927 SHA1 20635798e068138b36cae6ba99b4b6712e4348d5 SHA256 1519d7d587aa13e53dac22ead639b883c00fe79a3b8268da4869c44e10afc180
 DIST ion-3ds-20060326.tar.gz 617533 RMD160 147e6ad20c69ca8fe5a80dcd57ce6002a2b3cde1 SHA1 5202322198071f7cee2aefc2bcc8bd0b3a08a490 SHA256 9f3c96c961e47c61e9c10b57de820b608b9d9fdaa43a893e63499b3f17231124
 DIST ion-3ds-20061223.tar.gz 649463 RMD160 dc61a012354a30f1a83b8b0970b8c09724ea4c9c SHA1 8bccf120ce27b26feb67a916ba61748e85e69733 SHA256 0970fef74de659de45813471560ebe2f97b893de7a238ea00755fcaeb9b7d89e
 DIST ion-3ds-20070203.tar.gz 644970 RMD160 5a208900986c9fa62912754f8a35f245165fc7c0 SHA1 41837145662f7f84c29515582c92c5f1b1ea0f81 SHA256 950a2d27123d105d06d807b705c9ed5f6c93541976451078fbbb19c2150d8058
+DIST ion-3ds-20070318.tar.gz 657282 RMD160 a7cc9baea3624b0ed840fdc82fc5db2ac1018d9a SHA1 f352a1c7f6f465478141d538b2a4c3f3e81a4f30 SHA256 712da027fb12774f67d933d95a95452d98a5658617fc5515011ca79b6035258a
+DIST ion3-doc-20070318.tar.bz2 38870 RMD160 5fc0225ad23f1c96b5e979d66185ea608372297d SHA1 93c14f675f5fba3212232ed127af4d4481716884 SHA256 22ca643ca5df67086f12d3f106b16094017477c41fd1ebd73d30607db206821b
 DIST ion3-mod-ionflux_20061022.orig.tar.gz 14847 RMD160 86bcc2a260f3e37d613bcebd66f37616e56d3926 SHA1 64d56a158de66cd15b03dfdccc8162509432fa01 SHA256 f9fd872d2d5b35f882d9a9161dee52fd5b2bb346c46f9e6cc30922dcda99c935
 DIST ion3-mod-xrandr-20061021.tar.bz2 10762 RMD160 cca3f472e32b8aff1ce8af123c24e17574c1b197 SHA1 9c36bc4be2a97f6a9256054ffbb946ad7dc6965a SHA256 cd2225a356ddfc6f02062bf23c1e90fa573661347ff185316aeae0e18eee72ef
+DIST ion3-mod-xrandr-20070220.tar.bz2 10822 RMD160 680714961af7e6b81896c4d989baded5ea4c5222 SHA1 11e3829f16b48e90de71469b2013a0cda9ac2eb8 SHA256 858a72ad203fb98f3cea672809a2cdfd7cb87cfa744e622e5a04d2f87cc1ae38
+DIST ion3-scripts-20070322.tar.bz2 101212 RMD160 101a6dd933b5b9b495ca4607a7e0d48d48a9c409 SHA1 7dbbec42f3b97da16d05987347f0c3ae54c76eec SHA256 6864d75f2f7ca021368b52051c297f5590047257ca39d0332af65c7fef0f8d39
 DIST ion3-scripts_20061214.orig.tar.gz 129181 RMD160 b22827c490f23252c1953582d24a19a5aa0aaed0 SHA1 7095657b7bc3f7eba5e564e67ca09bb7b0e1a010 SHA256 82e25973fcfdd282bdb3734191f8a5b0d711b2bf0cb64196d3b42351185fdbcf
 DIST ion3-scripts_20070203.orig.tar.gz 123859 RMD160 bd5f0085fadc36e5875b505dee4aa08204bf2f2b SHA1 16add11a6b5638183c2c25e6a948430bed0aabfe SHA256 869e5947f9b8663a701c4748245fdc4abd7225df27d2ca4418f9563af7c5643e
 DIST xft-ion3-for-darcs-20061202.diff 20126 RMD160 054efa097492531d800bca85582d5b6836567408 SHA1 2405218fb387c3ac76ff1612bd6f4482cf459a0f SHA256 6af98c329395acb46ddbdac4f0ba023c6e5344914cc06cdfa82339526ce25b3c
@@ -74,10 +98,14 @@ EBUILD ion3-20070203.ebuild 3732 RMD160 ba8c1f602bada8a90ca65fc1e7424dfc1842a8b2
 MD5 484d685206ec3964891bb00ffa7003f5 ion3-20070203.ebuild 3732
 RMD160 ba8c1f602bada8a90ca65fc1e7424dfc1842a8b2 ion3-20070203.ebuild 3732
 SHA256 f984001b6abbd96cf1ce33d2313b22fbf0fe81c94c1e9cf34fdd6d3ea3238e93 ion3-20070203.ebuild 3732
-MISC ChangeLog 6913 RMD160 1729676401e53b5a152d84ed26c12eb00ec07921 SHA1 f0179643a3044f7bb506bb304cf507a78685b79b SHA256 39a4d0b88ac77802c4493e215b0679aaf0c7119c632c07e12058a315185249c8
-MD5 2554ebd3649f3757cc84a0078d9d9403 ChangeLog 6913
-RMD160 1729676401e53b5a152d84ed26c12eb00ec07921 ChangeLog 6913
-SHA256 39a4d0b88ac77802c4493e215b0679aaf0c7119c632c07e12058a315185249c8 ChangeLog 6913
+EBUILD ion3-20070318.ebuild 4350 RMD160 a6b7a8ea003a6503f110870666dcd18ad089869b SHA1 a2842dc0f0c21cd1ae36cd93c20c4f22f90c21e0 SHA256 33edc0c4be857f262db8bc0ed40259844f0572d93005abd8c994f5dea707ec7b
+MD5 20667d328d1ca7a19850b9e718769668 ion3-20070318.ebuild 4350
+RMD160 a6b7a8ea003a6503f110870666dcd18ad089869b ion3-20070318.ebuild 4350
+SHA256 33edc0c4be857f262db8bc0ed40259844f0572d93005abd8c994f5dea707ec7b ion3-20070318.ebuild 4350
+MISC ChangeLog 7311 RMD160 199ef688fb32009f9c483a610fd8c402968eed77 SHA1 417c518a3c2112924ed1ed08f8a4be571aaa8f07 SHA256 e9cf8cad0202cfed948f55a447104742ff737c6649150cd636aca73adb295c83
+MD5 8f13f0af21f3ff52245ef07e03674a6e ChangeLog 7311
+RMD160 199ef688fb32009f9c483a610fd8c402968eed77 ChangeLog 7311
+SHA256 e9cf8cad0202cfed948f55a447104742ff737c6649150cd636aca73adb295c83 ChangeLog 7311
 MISC metadata.xml 244 RMD160 10fcb6c60f0d88174ff99fd391d0da3a75bdf89d SHA1 bee870f83b6bd74feedef2b9ff8da8f4820cc19f SHA256 c7b6d3457d4746a2b281c4ac598bcf78b8e1553d8d63f2523b4cd0f4eaa422b1
 MD5 d992d28bec4a3bfd72b441145091a58e metadata.xml 244
 RMD160 10fcb6c60f0d88174ff99fd391d0da3a75bdf89d metadata.xml 244
@@ -94,10 +122,13 @@ SHA256 0a8be4455d11e16b8f4c20d6b7019d73d7e564f1a9c41134b512fd982dc675c4 files/di
 MD5 9aecaf31ce9460ac396c9f12054ae1e3 files/digest-ion3-20070203 804
 RMD160 58fe703f77c5bf4fec484247ac140b0f036a17ac files/digest-ion3-20070203 804
 SHA256 3a2ae7a4bd5be68cba85e5bd46b4f18e0a8326046ad1f5a44073f4613bc98214 files/digest-ion3-20070203 804
+MD5 1f454e2ba54eec9e1f3fa03e307b61f6 files/digest-ion3-20070318 1045
+RMD160 7087b16c049c3b8b4d150ab7eb8a461e67ae28e6 files/digest-ion3-20070318 1045
+SHA256 b2181757e7912e1c67e67d7f3e4200e3cf9b8c4d2eea0ff964f2e92e6e3ea66d files/digest-ion3-20070318 1045
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFF885YfNMcoUhJ7GwRAmmxAJ9a2ibDSu+vkHXA1yNokG6Of6EzBACcD1Rn
-qwpk2i5tkR/agH4Lqr4G5BQ=
-=/I0s
+iD8DBQFGBrx5fNMcoUhJ7GwRAtYTAKCOZ432S628XWPGQfpxXBjig3Nw+wCfR5lq
+P2qVbjVW8Am/iabhNsiB4lY=
+=dJGC
 -----END PGP SIGNATURE-----
diff --git a/x11-wm/ion3/files/20070318/201_all_fix-paths.patch b/x11-wm/ion3/files/20070318/201_all_fix-paths.patch
new file mode 100644 (file)
index 0000000..7f8f228
--- /dev/null
@@ -0,0 +1,90 @@
+diff -Nur ion-3ds-20060519.orig/system.mk ion-3ds-20060519/system.mk
+--- ion-3ds-20060519.orig/system.mk    2006-05-18 18:06:53.000000000 -0500
++++ ion-3ds-20060519/system.mk 2006-05-18 23:51:23.000000000 -0500
+@@ -7,7 +7,7 @@
+ ## Installation paths
+ ##
+-PREFIX=/usr/local
++PREFIX=/usr
+ # Unless you are creating a package conforming to some OS's standards, you
+ # probably do not want to modify the following directories:
+@@ -15,7 +15,7 @@
+ # Main binaries
+ BINDIR=$(PREFIX)/bin
+ # Configuration .lua files
+-ETCDIR=$(PREFIX)/etc/ion3
++ETCDIR=/etc/X11/ion3
+ # Some .lua files and ion-* shell scripts
+ SHAREDIR=$(PREFIX)/share/ion3
+ # Manual pages
+@@ -27,11 +27,11 @@
+ # Nothing at the moment
+ LIBDIR=$(PREFIX)/lib
+ # Modules
+-MODULEDIR=$(LIBDIR)/ion3/mod
++MODULEDIR=$(LIBDIR)/ion3/mod
+ # Compiled Lua source code
+ LCDIR=$(LIBDIR)/ion3/lc
+ # ion-completefile (does not belong in SHAREDIR being a binary file)
+-EXTRABINDIR=$(LIBDIR)/ion3/bin
++EXTRABINDIR=$(LIBDIR)/ion3/bin
+ # For ion-completeman system-wide cache
+ VARDIR=/var/cache/ion3
+ # Message catalogs
+@@ -56,18 +56,18 @@
+ # If you have installed Lua 5.1 from the official tarball without changing
+ # paths, this should do it.
+-LUA_DIR=/usr/local
+-LUA_LIBS = -L$(LUA_DIR)/lib -llua
+-LUA_INCLUDES = -I$(LUA_DIR)/include
+-LUA=$(LUA_DIR)/bin/lua
+-LUAC=$(LUA_DIR)/bin/luac
++#LUA_DIR=/usr/local
++#LUA_LIBS = -L$(LUA_DIR)/lib -llua
++#LUA_INCLUDES = -I$(LUA_DIR)/include
++#LUA=$(LUA_DIR)/bin/lua
++#LUAC=$(LUA_DIR)/bin/luac
+ # If you are using the Debian packages, the following settings should be
+ # what you want.
+-#LUA_LIBS=`pkg-config --libs lua5.1`
+-#LUA_INCLUDES=`pkg-config --cflags lua5.1`
+-#LUA=`which lua5.1`
+-#LUAC=`which luac5.1`
++LUA_LIBS=`pkg-config --libs lua`
++LUA_INCLUDES=`pkg-config --cflags lua`
++LUA=`which lua`
++LUAC=`which luac`
+ ##
+@@ -107,7 +107,7 @@
+ # asprintf and vasprintf in the c library. (gnu libc has.)
+ # If HAS_SYSTEM_ASPRINTF is not defined, an implementation
+ # in sprintf_2.2/ is used.
+-#HAS_SYSTEM_ASPRINTF=1
++HAS_SYSTEM_ASPRINTF=1
+ # If you're on an archaic system (such as relatively recent *BSD releases)
+@@ -144,14 +144,14 @@
+ #C89_SOURCE=-ansi
+-#POSIX_SOURCE=-D_POSIX_SOURCE
++POSIX_SOURCE=-D_POSIX_SOURCE
+ # Most systems
+-#XOPEN_SOURCE=-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED
++XOPEN_SOURCE=-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED
+ # SunOS, (Irix)
+ #XOPEN_SOURCE=-D__EXTENSIONS__
+-#C99_SOURCE=-std=c99 -DCF_HAS_VA_COPY
++C99_SOURCE=-std=c99 -DCF_HAS_VA_COPY
+ # The -DCF_HAS_VA_COPY option should allow for some optimisations, and 
+ # in some cases simply defining
diff --git a/x11-wm/ion3/files/20070318/202_all_fix-menus.patch b/x11-wm/ion3/files/20070318/202_all_fix-menus.patch
new file mode 100644 (file)
index 0000000..c2d77c8
--- /dev/null
@@ -0,0 +1,13 @@
+diff -Naur ../work/ion-3ds-20061223/etc/cfg_ioncore.lua ion-3ds-20061223/etc/cfg_ioncore.lua
+--- ../work/ion-3ds-20061223/etc/cfg_ioncore.lua       2006-12-23 17:59:43.000000000 +0300
++++ ion-3ds-20061223/etc/cfg_ioncore.lua       2006-12-31 15:35:59.000000000 +0300
+@@ -331,7 +331,8 @@
+ defmenu("mainmenu", {
+     menuentry("Run...",         "mod_query.query_exec(_)"),
+     menuentry("Terminal",       "ioncore.exec_on(_, XTERM or 'xterm')"),
+-    menuentry("Lock screen",    "ioncore.exec_on(_, 'xlock')"),
++    menuentry("Lock screen",                                                                                                                                  
++              "ioncore.exec_on(_, ioncore.lookup_script('ion-lock'))"),                                                                                       
+     menuentry("Help",           "mod_query.query_man(_)"),
+     menuentry("About Ion",      "mod_query.show_about_ion(_)"),
+     submenu("Styles",           "stylemenu"),
diff --git a/x11-wm/ion3/files/20070318/205_all_ion-lock.patch b/x11-wm/ion3/files/20070318/205_all_ion-lock.patch
new file mode 100644 (file)
index 0000000..dda2016
--- /dev/null
@@ -0,0 +1,22 @@
+diff -Nur ion3-20050322.orig/utils/Makefile ion3-20050322/utils/Makefile
+--- ion3-20050322.orig/utils/Makefile  2005-03-22 14:31:06.000000000 +0000
++++ ion3-20050322/utils/Makefile       2005-03-22 16:29:37.197355881 +0000
+@@ -11,7 +11,7 @@
+ SUBDIRS=ion-completefile
+ INSTALL_SUBDIRS=$(SUBDIRS)
+-SHELLSCRIPTS = ion-runinxterm ion-completeman
++SHELLSCRIPTS = ion-runinxterm ion-completeman ion-lock
+ TARGETS = ion-completeman
+diff -Nur ion3-20050322.orig/utils/ion-lock ion3-20050322/utils/ion-lock
+--- ion3-20050322.orig/utils/ion-lock  1970-01-01 00:00:00.000000000 +0000
++++ ion3-20050322/utils/ion-lock       2005-03-22 16:29:19.550092305 +0000
+@@ -0,0 +1,6 @@
++#!/bin/sh
++if xscreensaver-command -version >/dev/null 2>&1; then
++      exec xscreensaver-command -lock
++else
++      exec xlock
++fi
diff --git a/x11-wm/ion3/files/20070318/207_all_bindings-manpage.patch b/x11-wm/ion3/files/20070318/207_all_bindings-manpage.patch
new file mode 100644 (file)
index 0000000..5fac548
--- /dev/null
@@ -0,0 +1,117 @@
+diff -Nur ion3-20061020.orig/man/ion3.cs.in ion3-20061020/man/ion3.cs.in
+--- ion3-20061020.orig/man/ion3.cs.in  2006-10-20 17:43:37.000000000 +0200
++++ ion3-20061020/man/ion3.cs.in       2006-10-23 20:42:12.000000000 +0200
+@@ -81,6 +81,10 @@
+ .SS Globální pøiøazení
++BINDINGS:WFrame
++
++.SS Pøiøazení pro pøesun/zmìnu velikosti
++
+ BINDINGS:WScreen
+ .SS Pøiøazení pro práci s nejvy¹¹ími rámy a obrazovkami a jejich potomky
+diff -Nur ion3-20061020.orig/man/ion3.fi.in ion3-20061020/man/ion3.fi.in
+--- ion3-20061020.orig/man/ion3.fi.in  2006-10-20 17:43:36.000000000 +0200
++++ ion3-20061020/man/ion3.fi.in       2006-10-23 20:42:12.000000000 +0200
+@@ -84,6 +84,10 @@
+ .SS Yleisesti saatavilla olevat sidonnat
++BINDINGS:WFrame
++
++.SS Siirto ja koonmuutostilan sidonnat
++
+ BINDINGS:WScreen
+ .SS Näytöillä tai ylimmän tason kehyksissä toimivat sidonnat
+diff -Nur ion3-20061020.orig/man/ion3.in ion3-20061020/man/ion3.in
+--- ion3-20061020.orig/man/ion3.in     2006-10-20 17:43:36.000000000 +0200
++++ ion3-20061020/man/ion3.in  2006-10-23 20:42:12.000000000 +0200
+@@ -82,6 +82,10 @@
+ .SS Globally available bindings
++BINDINGS:WFrame
++
++.SS Move/resize mode bindings
++
+ BINDINGS:WScreen
+ .SS Bindings operating on top-level frames and screens and their children
+diff -Nur ion3-20061020.orig/man/pwm3.cs.in ion3-20061020/man/pwm3.cs.in
+--- ion3-20061020.orig/man/pwm3.cs.in  2006-10-20 17:43:36.000000000 +0200
++++ ion3-20061020/man/pwm3.cs.in       2006-10-23 20:42:12.000000000 +0200
+@@ -56,6 +56,10 @@
+ .SS Globální pøiøazení
++BINDINGS:WFrame
++
++.SS Pøiøazení pro pøesun/zmìnu velikosti
++
+ BINDINGS:WScreen
+ .".SS Pøiøazení pro práci s rámy, obrazovkami a jejich potomky
+@@ -64,10 +68,6 @@
+ .SS Pøiøazení pro práci s rámy a jejich potomky
+-BINDINGS:WFrame
+-
+-.SS Pøiøazení pro pøesun/zmìnu velikosti
+-
+ BINDINGS:WMoveresMode
+ .SS Pøiøazení pro plovoucí pracovní plochy [mod_floatws]
+diff -Nur ion3-20061020.orig/man/pwm3.fi.in ion3-20061020/man/pwm3.fi.in
+--- ion3-20061020.orig/man/pwm3.fi.in  2006-10-20 17:43:36.000000000 +0200
++++ ion3-20061020/man/pwm3.fi.in       2006-10-23 20:42:12.000000000 +0200
+@@ -57,6 +57,10 @@
+ .SS Yleisesti saatavilla olevat sidonnat
++BINDINGS:WFrame
++
++.SS Siirto ja koonmuutostilan sidonnat
++
+ BINDINGS:WScreen
+ .\".SS Kehyksiä ja näyttöjä, sekä niiden lapsia käsittelevät sidonnat
+@@ -65,10 +69,6 @@
+ .SS Kehyksiä, sekä niiden lapsia käsittelevät sidonnat
+-BINDINGS:WFrame
+-
+-.SS Siirto ja koonmuutostilan sidonnat
+-
+ BINDINGS:WMoveresMode
+ .SS Kelluvien työpöytien ja kehyksien sidonnat [mod_floatws]
+diff -Nur ion3-20061020.orig/man/pwm3.in ion3-20061020/man/pwm3.in
+--- ion3-20061020.orig/man/pwm3.in     2006-10-20 17:43:36.000000000 +0200
++++ ion3-20061020/man/pwm3.in  2006-10-23 20:42:12.000000000 +0200
+@@ -57,6 +57,10 @@
+ .SS Globally available bindings
++BINDINGS:WFrame
++
++.SS Move/resize mode bindings
++
+ BINDINGS:WScreen
+ .".SS Bindings operating on both frames and screens and their children
+@@ -65,10 +69,6 @@
+ .SS Bindings operating on frames and their children
+-BINDINGS:WFrame
+-
+-.SS Move/resize mode bindings
+-
+ BINDINGS:WMoveresMode
+ .SS Bindings for floating workspaces and frames [mod_floatws]
diff --git a/x11-wm/ion3/files/digest-ion3-20070318 b/x11-wm/ion3/files/digest-ion3-20070318
new file mode 100644 (file)
index 0000000..b233dc8
--- /dev/null
@@ -0,0 +1,12 @@
+MD5 f02264ab7ecc990c2cd322f57a5e8a4d ion-3ds-20070318.tar.gz 657282
+RMD160 a7cc9baea3624b0ed840fdc82fc5db2ac1018d9a ion-3ds-20070318.tar.gz 657282
+SHA256 712da027fb12774f67d933d95a95452d98a5658617fc5515011ca79b6035258a ion-3ds-20070318.tar.gz 657282
+MD5 b6ec641eac93eb32a97de4baf02f4da0 ion3-doc-20070318.tar.bz2 38870
+RMD160 5fc0225ad23f1c96b5e979d66185ea608372297d ion3-doc-20070318.tar.bz2 38870
+SHA256 22ca643ca5df67086f12d3f106b16094017477c41fd1ebd73d30607db206821b ion3-doc-20070318.tar.bz2 38870
+MD5 4ce492ba5311d74328655923386868ee ion3-mod-xrandr-20070220.tar.bz2 10822
+RMD160 680714961af7e6b81896c4d989baded5ea4c5222 ion3-mod-xrandr-20070220.tar.bz2 10822
+SHA256 858a72ad203fb98f3cea672809a2cdfd7cb87cfa744e622e5a04d2f87cc1ae38 ion3-mod-xrandr-20070220.tar.bz2 10822
+MD5 47c6573679eead6183c49bdbc660aedd ion3-scripts-20070322.tar.bz2 101212
+RMD160 101a6dd933b5b9b495ca4607a7e0d48d48a9c409 ion3-scripts-20070322.tar.bz2 101212
+SHA256 6864d75f2f7ca021368b52051c297f5590047257ca39d0332af65c7fef0f8d39 ion3-scripts-20070322.tar.bz2 101212
diff --git a/x11-wm/ion3/files/xft-ion3-20070318.patch b/x11-wm/ion3/files/xft-ion3-20070318.patch
new file mode 100644 (file)
index 0000000..f2d9658
--- /dev/null
@@ -0,0 +1,689 @@
+diff -Naur ../work/ion-3/build/ac/configure.ac ion-3ds-20070203/build/ac/configure.ac
+--- ../work/ion-3/build/ac/configure.ac        2007-02-21 13:11:28.000000000 +0300
++++ ion-3ds-20070203/build/ac/configure.ac     2007-02-21 13:11:56.000000000 +0300
+@@ -65,6 +65,8 @@
+ if test "x$enable_xinerama" = xno; then
+     _DCF_NO_XINERAMA="-DCF_NO_XINERAMA"
++else
++    _DCF_NO_XINERAMA="-DCF_XINERAMA"
+ fi
+ dnl }}}
+@@ -427,6 +429,18 @@
+ dnl }}}
++AC_ARG_ENABLE([xft],
++              [AS_HELP_STRING([--disable-xft],
++                              [Disable XFT Support])])
++
++if test "x$enable_xft" != xno; then
++      XFT_CFLAGS=`xft-config --cflags`
++        XFT_CFLAGS="${XFT_CFLAGS} -DXFT" 
++      XFT_LIBS=`xft-config --libs`
++fi
++
++AC_SUBST([XFT_CFLAGS])
++AC_SUBST([XFT_LIBS])
+ AC_OUTPUT([system-ac.mk])
+diff -Naur ../work/ion-3/build/ac/system-ac.mk.in ion-3ds-20070203/build/ac/system-ac.mk.in
+--- ../work/ion-3/build/ac/system-ac.mk.in     2007-02-21 13:11:28.000000000 +0300
++++ ion-3ds-20070203/build/ac/system-ac.mk.in  2007-02-21 13:11:56.000000000 +0300
+@@ -188,3 +188,7 @@
+ STRIP=@STRIP@
+ RM=rm
++
++### XFT Support
++CFLAGS+=@XFT_CFLAGS@
++LIBS+=@XFT_LIBS@
+diff -Naur ../work/ion-3/de/brush.c ion-3ds-20070203/de/brush.c
+--- ../work/ion-3/de/brush.c   2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/brush.c        2007-02-21 13:11:57.000000000 +0300
+@@ -47,6 +47,9 @@
+     
+     gr_stylespec_init(&brush->current_attr);
+     
++#ifdef XFT
++    brush->draw=NULL;
++#endif /* XFT */
+     style->usecount++;
+     if(!grbrush_init(&(brush->grbrush))){
+@@ -127,6 +130,10 @@
+ {
+     destyle_unref(brush->d);
+     brush->d=NULL;
++#ifdef XFT
++    if(brush->draw!=NULL)
++          XftDrawDestroy(brush->draw);
++#endif /* XFT */
+     gr_stylespec_unalloc(&brush->current_attr);
+     grbrush_deinit(&(brush->grbrush));
+ }
+@@ -138,6 +145,21 @@
+ }
++#ifdef XFT
++XftDraw *debrush_get_draw(DEBrush *brush, Drawable d)
++{
++      if(brush->draw==NULL)
++              brush->draw=XftDrawCreate(ioncore_g.dpy, d,
++                                        XftDEDefaultVisual(),
++                                        DefaultColormap(ioncore_g.dpy,
++                                                        0));
++      else
++              XftDrawChange(brush->draw, d);
++
++      return brush->draw;
++}
++#endif
++
+ /*}}}*/
+diff -Naur ../work/ion-3/de/brush.h ion-3ds-20070203/de/brush.h
+--- ../work/ion-3/de/brush.h   2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/brush.h        2007-02-21 13:11:57.000000000 +0300
+@@ -17,6 +17,9 @@
+ #include <ioncore/common.h>
+ #include <ioncore/gr.h>
+ #include <ioncore/rectangle.h>
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
+ INTRCLASS(DEBrush);
+@@ -36,6 +39,9 @@
+ DECLCLASS(DEBrush){
+     GrBrush grbrush;
+     DEStyle *d;
++#ifdef XFT
++    XftDraw *draw;
++#endif
+     DEBrushExtrasFn *extras_fn;
+     int indicator_w;
+     Window win;
+@@ -111,5 +117,8 @@
+ extern void debrush_fill_area(DEBrush *brush, const WRectangle *geom);
+ extern void debrush_clear_area(DEBrush *brush, const WRectangle *geom);
++#ifdef XFT
++XftDraw *debrush_get_draw(DEBrush *brush, Drawable d);
++#endif
+ #endif /* ION_DE_BRUSH_H */
+diff -Naur ../work/ion-3/de/colour.c ion-3ds-20070203/de/colour.c
+--- ../work/ion-3/de/colour.c  2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/colour.c       2007-02-21 13:11:57.000000000 +0300
+@@ -15,9 +15,21 @@
+ bool de_alloc_colour(WRootWin *rootwin, DEColour *ret, const char *name)
+ {
++#ifndef XFT
+     XColor c;
+     bool ok=FALSE;
++#else /* XFT */
++    if(name==NULL)
++          return FALSE;
++    return XftColorAllocName(
++          ioncore_g.dpy,
++          XftDEDefaultVisual(),
++          rootwin->default_cmap,
++          name,
++          ret);
++#endif /* XFT */
++#ifndef XFT
+     if(name==NULL)
+         return FALSE;
+@@ -28,11 +40,13 @@
+     }
+     
+     return ok;
++#endif /* ! XFT */
+ }
+ bool de_duplicate_colour(WRootWin *rootwin, DEColour in, DEColour *out)
+ {
++#ifndef XFT
+     XColor c;
+     c.pixel=in;
+     XQueryColor(ioncore_g.dpy, rootwin->default_cmap, &c);
+@@ -41,11 +55,20 @@
+         return TRUE;
+     }
+     return FALSE;
++#else /* XFT */
++    return XftColorAllocName(
++          ioncore_g.dpy,
++          XftDEDefaultVisual(),
++          rootwin->default_cmap,
++          &(in.color),
++          out);
++#endif /* XFT */
+ }
+ void de_free_colour_group(WRootWin *rootwin, DEColourGroup *cg)
+ {
++#ifndef XFT
+     DEColour pixels[5];
+     
+     pixels[0]=cg->bg;
+@@ -57,15 +80,26 @@
+     XFreeColors(ioncore_g.dpy, rootwin->default_cmap, pixels, 5, 0);
+     
+     gr_stylespec_unalloc(&cg->spec);
++#else /* XFT */
++    de_free_colour(rootwin, cg->bg);
++    de_free_colour(rootwin, cg->fg);
++    de_free_colour(rootwin, cg->hl);
++    de_free_colour(rootwin, cg->sh);
++    de_free_colour(rootwin, cg->pad);
++#endif /* XFT */
+ }
+ void de_free_colour(WRootWin *rootwin, DEColour col)
+ {
++#ifndef XFT
+     DEColour pixels[1];
+     
+     pixels[0]=col;
+     
+     XFreeColors(ioncore_g.dpy, rootwin->default_cmap, pixels, 1, 0);
++#else /* XFT */
++    XftColorFree(ioncore_g.dpy, XftDEDefaultVisual(), rootwin->default_cmap, &col);
++#endif /* XFT */
+ }
+diff -Naur ../work/ion-3/de/colour.h ion-3ds-20070203/de/colour.h
+--- ../work/ion-3/de/colour.h  2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/colour.h       2007-02-21 13:11:57.000000000 +0300
+@@ -15,12 +15,19 @@
+ #include <ioncore/common.h>
+ #include <ioncore/global.h>
+ #include <ioncore/rootwin.h>
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
+ INTRSTRUCT(DEColourGroup);
++#ifndef XFT
+ typedef unsigned long DEColour;
++#else /* XFT */
++typedef XftColor DEColour;
++#endif /* XFT */
+ DECLSTRUCT(DEColourGroup){
+@@ -37,5 +44,6 @@
+ bool de_duplicate_colour(WRootWin *rootwin, DEColour in, DEColour *out);
+ void de_free_colour_group(WRootWin *rootwin, DEColourGroup *cg);
+ void de_free_colour(WRootWin *rootwin, DEColour col);
++#define XftDEDefaultVisual()    DefaultVisual(ioncore_g.dpy, 0)
+ #endif /* ION_DE_COLOUR_H */
+diff -Naur ../work/ion-3/de/draw.c ion-3ds-20070203/de/draw.c
+--- ../work/ion-3/de/draw.c    2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/draw.c 2007-02-21 13:11:57.000000000 +0300
+@@ -22,6 +22,14 @@
+ #include <X11/extensions/shape.h>
++#ifndef XFT
++#define PIXEL(x) x
++#else /* XFT */
++#define PIXEL(x) x.pixel
++#endif /* XFT */
++
++
++
+ /*{{{ Colour group lookup */
+@@ -86,8 +94,7 @@
+     w--;
+     h--;
+-    XSetForeground(ioncore_g.dpy, gc, tlc);
+-
++    XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
+     
+     a=(br!=0);
+     b=0;
+@@ -104,9 +111,8 @@
+     
+         XDrawLines(ioncore_g.dpy, win, gc, points, 3, CoordModeOrigin);
+     }
+-
+     
+-    XSetForeground(ioncore_g.dpy, gc, brc);
++    XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
+     a=(tl!=0);
+     b=0;
+@@ -143,23 +143,23 @@
+                             GrBorderLine line)
+ {
+     if(line==GR_BORDERLINE_LEFT && geom->h>0 && tl>0){
+-        XSetForeground(ioncore_g.dpy, gc, tlc);
+-        XSetBackground(ioncore_g.dpy, gc, tlc);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
++        XSetBackground(ioncore_g.dpy, gc, PIXEL(tlc));
+         XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, tl, geom->h);
+         geom->x+=tl;
+     }else if(line==GR_BORDERLINE_TOP && geom->w>0 && tl>0){
+-        XSetForeground(ioncore_g.dpy, gc, tlc);
+-        XSetBackground(ioncore_g.dpy, gc, tlc);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
++        XSetBackground(ioncore_g.dpy, gc, PIXEL(tlc));
+         XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, geom->w, tl);
+         geom->y+=tl;
+     }else if(line==GR_BORDERLINE_RIGHT && geom->h>0 && br>0){
+-        XSetForeground(ioncore_g.dpy, gc, brc);
+-        XSetBackground(ioncore_g.dpy, gc, brc);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
++        XSetBackground(ioncore_g.dpy, gc, PIXEL(brc));
+         XFillRectangle(ioncore_g.dpy, win, gc, geom->x+geom->w-br, geom->y, br, geom->h);
+         geom->w-=br;
+     }else if(line==GR_BORDERLINE_BOTTOM && geom->w>0 && br>0){
+-        XSetForeground(ioncore_g.dpy, gc, brc);
+-        XSetBackground(ioncore_g.dpy, gc, brc);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
++        XSetBackground(ioncore_g.dpy, gc, PIXEL(brc));
+         XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y+geom->h-br, geom->w, br);
+         geom->h-=br;
+     }
+@@ -293,7 +299,7 @@
+     }
+     
+     if(MATCHES2(tagged_spec, a1, a2)){
+-        XSetForeground(ioncore_g.dpy, d->copy_gc, cg->fg);
++        XSetForeground(ioncore_g.dpy, d->copy_gc, PIXEL(cg->fg));
+             
+         copy_masked(brush, d->tag_pixmap, brush->win, 0, 0,
+                     d->tag_pixmap_w, d->tag_pixmap_h,
+@@ -348,7 +354,7 @@
+     GC gc=brush->d->normal_gc;
+     
+     if(TRUE/*needfill*/){
+-        XSetForeground(ioncore_g.dpy, gc, cg->bg);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(cg->bg));
+         XFillRectangle(ioncore_g.dpy, brush->win, gc, geom->x, geom->y, 
+                        geom->w, geom->h);
+     }
+@@ -513,7 +519,7 @@
+         attr.background_pixmap=ParentRelative;
+     }else{
+         attrflags=CWBackPixel;
+-        attr.background_pixel=brush->d->cgrp.bg;
++        attr.background_pixel=brush->d->PIXEL(cgrp.bg);
+     }
+     
+     XChangeWindowAttributes(ioncore_g.dpy, brush->win, attrflags, &attr);
+@@ -529,7 +535,7 @@
+     if(cg==NULL)
+         return;
+     
+-    XSetForeground(ioncore_g.dpy, gc, cg->bg);
++    XSetForeground(ioncore_g.dpy, gc, PIXEL(cg->bg));
+     XFillRectangle(ioncore_g.dpy, brush->win, gc, 
+                    geom->x, geom->y, geom->w, geom->h);
+ }
+diff -Naur ../work/ion-3/de/font.c ion-3ds-20070203/de/font.c
+--- ../work/ion-3/de/font.c    2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/font.c 2007-02-21 13:11:57.000000000 +0300
+@@ -14,7 +14,9 @@
+ #include <libtu/objp.h>
+ #include <ioncore/common.h>
+ #include "font.h"
++#ifndef XFT
+ #include "fontset.h"
++#endif /* ! XFT */
+ #include "brush.h"
+@@ -26,6 +28,9 @@
+ DEFont *de_load_font(const char *fontname)
+ {
++#ifdef XFT
++    XftFont *font;
++#endif
+     DEFont *fnt;
+     XFontSet fontset=NULL;
+     XFontStruct *fontstruct=NULL;
+@@ -40,6 +45,7 @@
+         }
+     }
+     
++#ifndef XFT
+     if(ioncore_g.use_mb){
+         fontset=de_create_font_set(fontname);
+         if(fontset!=NULL){
+@@ -66,13 +72,34 @@
+         return NULL;
+     }
+     
++#else /* XFT */
++    if(strncmp(fontname, "xft:", 4)==0){
++          font=XftFontOpenName(ioncore_g.dpy, DefaultScreen(ioncore_g.dpy),
++                               fontname+4);
++    }else{
++          font=XftFontOpenXlfd(ioncore_g.dpy, DefaultScreen(ioncore_g.dpy), fontname);
++    }
++    
++    if(font==NULL){
++          if(strcmp(fontname, CF_FALLBACK_FONT_NAME)!=0){
++                  warn(TR("Could not load font \"%s\", trying \"%s\""),
++                       fontname, CF_FALLBACK_FONT_NAME);
++                  return de_load_font(CF_FALLBACK_FONT_NAME);
++          }
++          return NULL;
++    }
++#endif /* XFT */
+     fnt=ALLOC(DEFont);
+     
+     if(fnt==NULL)
+         return NULL;
+     
++#ifndef XFT
+     fnt->fontset=fontset;
+     fnt->fontstruct=fontstruct;
++#else
++    fnt->font=font;
++#endif
+     fnt->pattern=scopy(fontname);
+     fnt->next=NULL;
+     fnt->prev=NULL;
+@@ -92,11 +119,13 @@
+     style->font=font;
+     font->refcount++;
+     
++#ifndef XFT
+     if(style->font->fontstruct!=NULL){
+         XSetFont(ioncore_g.dpy, style->normal_gc, 
+                  style->font->fontstruct->fid);
+     }
++#endif /* ! XFT */
+     return TRUE;
+ }
+@@ -111,11 +140,13 @@
+     if(style->font==NULL)
+         return FALSE;
+     
++#ifndef XFT
+     if(style->font->fontstruct!=NULL){
+         XSetFont(ioncore_g.dpy, style->normal_gc, 
+                  style->font->fontstruct->fid);
+     }
+     
++#endif /* ! XFT */
+     return TRUE;
+ }
+@@ -125,10 +156,15 @@
+     if(--font->refcount!=0)
+         return;
+     
++#ifndef XFT
+     if(font->fontset!=NULL)
+         XFreeFontSet(ioncore_g.dpy, font->fontset);
+     if(font->fontstruct!=NULL)
+         XFreeFont(ioncore_g.dpy, font->fontstruct);
++#else /* XFT */
++    if(font->font!=NULL)
++          XftFontClose(ioncore_g.dpy, font->font);
++#endif /* XFT */
+     if(font->pattern!=NULL)
+         free(font->pattern);
+     
+@@ -156,6 +192,7 @@
+ void defont_get_font_extents(DEFont *font, GrFontExtents *fnte)
+ {
++#ifndef XFT
+     if(font->fontset!=NULL){
+         XFontSetExtents *ext=XExtentsOfFontSet(font->fontset);
+         if(ext==NULL)
+@@ -171,7 +208,14 @@
+         fnte->baseline=fnt->ascent;
+         return;
+     }
+-    
++#else /* XFT */
++    if(font->font!=NULL){
++          fnte->max_height=font->font->ascent+font->font->descent;
++          fnte->max_width=font->font->max_advance_width;
++          fnte->baseline=font->font->ascent;
++          return;
++    }
++#endif /* XFT */
+ fail:
+     DE_RESET_FONT_EXTENTS(fnte);
+ }
+@@ -188,20 +232,35 @@
+ uint defont_get_text_width(DEFont *font, const char *text, uint len)
+ {
++#ifndef XFT
+     if(font->fontset!=NULL){
+         XRectangle lext;
+ #ifdef CF_DE_USE_XUTF8
+-        if(ioncore_g.enc_utf8)
+-            Xutf8TextExtents(font->fontset, text, len, NULL, &lext);
+-        else
++      if(ioncore_g.enc_utf8)
++              Xutf8TextExtents(font->fontset, text, len, NULL, &lext);
++      else
+ #endif
+-            XmbTextExtents(font->fontset, text, len, NULL, &lext);
+-        return lext.width;
++              XmbTextExtents(font->fontset, text, len, NULL, &lext);
++      return lext.width;
+     }else if(font->fontstruct!=NULL){
+         return XTextWidth(font->fontstruct, text, len);
+     }else{
+         return 0;
+     }
++#else /* XFT */
++    if(font->font!=NULL){
++          XGlyphInfo extents;
++          if(ioncore_g.enc_utf8)
++                  XftTextExtentsUtf8(ioncore_g.dpy, font->font, (XftChar8 *)text, len,
++                                     &extents);
++          else
++                  XftTextExtents8(ioncore_g.dpy, font->font, (XftChar8 *)text, len,
++                                  &extents);
++          return extents.xOff;
++    }else{
++          return 0;
++    }
++#endif /* XFT */
+ }
+@@ -211,6 +270,7 @@
+ /*{{{ String drawing */
++#ifndef XFT
+ void debrush_do_draw_string_default(DEBrush *brush, int x, int y,
+                                     const char *str, int len, bool needfill, 
+                                     DEColourGroup *colours)
+@@ -256,6 +316,41 @@
+     }
+ }
++#else /* XFT */
++void debrush_do_draw_string_default(DEBrush *brush, 
++                                  int x, int y, const char *str,
++                                  int len, bool needfill, 
++                                  DEColourGroup *colours)
++{
++   Window win = brush->win;
++   GC gc=brush->d->normal_gc;
++   XftDraw *draw;
++   XftFont *font;
++
++   if(brush->d->font==NULL)
++         return;
++   
++   font=brush->d->font->font;
++   draw=debrush_get_draw(brush, win);
++   
++   if(needfill){
++         XGlyphInfo extents;
++         if(ioncore_g.enc_utf8)
++                 XftTextExtentsUtf8(ioncore_g.dpy, font, (XftChar8 *)str, len,
++                                    &extents);
++         else
++                 XftTextExtents8(ioncore_g.dpy, font, (XftChar8 *)str, len, &extents);
++         XftDrawRect(draw, &(colours->bg), x-extents.x, y-extents.y,
++                     extents.width+10, extents.height);
++   }
++   
++   if(ioncore_g.enc_utf8)
++         XftDrawStringUtf8(draw, &(colours->fg), font, x, y, (XftChar8 *)str,
++                           len);
++   else
++         XftDrawString8(draw, &(colours->fg), font, x, y, (XftChar8 *)str, len);
++}
++#endif /* XFT */
+ void debrush_do_draw_string(DEBrush *brush, int x, int y,
+                             const char *str, int len, bool needfill, 
+diff -Naur ../work/ion-3/de/font.h ion-3ds-20070203/de/font.h
+--- ../work/ion-3/de/font.h    2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/font.h 2007-02-21 13:11:57.000000000 +0300
+@@ -14,6 +14,9 @@
+ #include <ioncore/common.h>
+ #include <ioncore/gr.h>
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
+ INTRSTRUCT(DEFont);
+@@ -29,6 +32,9 @@
+     int refcount;
+     XFontSet fontset;
+     XFontStruct *fontstruct;
++#ifdef XFT /* XFT */
++    XftFont *font;
++#endif /* XFT */
+     DEFont *next, *prev;
+ };
+diff -Naur ../work/ion-3/de/init.c ion-3ds-20070203/de/init.c
+--- ../work/ion-3/de/init.c    2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/init.c 2007-02-21 13:11:57.000000000 +0300
+@@ -138,16 +138,19 @@
+ void de_get_colour_group(WRootWin *rootwin, DEColourGroup *cg, 
+                          ExtlTab tab, DEStyle *based_on)
+ {
+-    de_get_colour(rootwin, &(cg->hl), tab, based_on, "highlight_colour",
+-                  DE_WHITE(rootwin));
+-    de_get_colour(rootwin, &(cg->sh), tab, based_on, "shadow_colour",
+-                  DE_WHITE(rootwin));
+-    de_get_colour(rootwin, &(cg->bg), tab, based_on, "background_colour",
+-                  DE_BLACK(rootwin));
+-    de_get_colour(rootwin, &(cg->fg), tab, based_on, "foreground_colour",
+-                  DE_WHITE(rootwin));
+-    de_get_colour(rootwin, &(cg->pad), tab, based_on, "padding_colour", 
+-                  cg->bg);
++    DEColour black, white;
++#ifdef XFT
++    de_alloc_colour(rootwin, &black, "black");
++    de_alloc_colour(rootwin, &white, "white");
++#else
++    black=DE_BLACK(rootwin);
++    white=DE_WHITE(rootwin);
++#endif
++    de_get_colour(rootwin, &(cg->hl), tab, based_on, "highlight_colour", white);
++    de_get_colour(rootwin, &(cg->sh), tab, based_on, "shadow_colour", white);
++    de_get_colour(rootwin, &(cg->bg), tab, based_on, "background_colour", black);
++    de_get_colour(rootwin, &(cg->fg), tab, based_on, "foreground_colour", white);
++    de_get_colour(rootwin, &(cg->pad), tab, based_on, "padding_colour", cg->bg);
+ }
+diff -Naur ../work/ion-3/de/style.c ion-3ds-20070203/de/style.c
+--- ../work/ion-3/de/style.c   2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/style.c        2007-02-21 13:11:57.000000000 +0300
+@@ -74,10 +74,17 @@
+     /*gcv.function=GXclear;*/
+     gcv.stipple=stipple_pixmap;
+     gcvmask=GCFillStyle|GCStipple/*|GCFunction*/;
++#ifndef XFT
+     if(style->font!=NULL && style->font->fontstruct!=NULL){
+         gcv.font=style->font->fontstruct->fid;
+         gcvmask|=GCFont;
+     }
++#else /* XFT */
++//    if(style->font!=NULL){
++//        gcv.font=style->font;
++//        gcvmask|=GCFont;
++//    }
++#endif /* XFT */
+     style->stipple_gc=XCreateGC(dpy, root, gcvmask, &gcv);
+     XCopyGC(dpy, style->normal_gc, 
+@@ -205,6 +212,14 @@
+ bool destyle_init(DEStyle *style, WRootWin *rootwin, const char *name)
+ {
++    DEColour black, white;
++#ifdef XFT
++    de_alloc_colour(rootwin, &black, "black");
++    de_alloc_colour(rootwin, &white, "white");
++#else
++    black=DE_BLACK(rootwin);
++    white=DE_WHITE(rootwin);
++#endif /* XFT */
+     if(!gr_stylespec_load(&style->spec, name))
+         return FALSE;
+     
+@@ -226,11 +241,11 @@
+     style->textalign=DEALIGN_CENTER;
+     style->cgrp_alloced=FALSE;
+-    style->cgrp.bg=DE_BLACK(rootwin);
+-    style->cgrp.pad=DE_BLACK(rootwin);
+-    style->cgrp.fg=DE_WHITE(rootwin);
+-    style->cgrp.hl=DE_WHITE(rootwin);
+-    style->cgrp.sh=DE_WHITE(rootwin);
++    style->cgrp.bg=black;
++    style->cgrp.pad=black;
++    style->cgrp.fg=white;
++    style->cgrp.hl=white;
++    style->cgrp.sh=white;
+     gr_stylespec_init(&style->cgrp.spec);
+     
+     style->font=NULL;
+diff -Naur ../work/ion-3/de/style.h ion-3ds-20070203/de/style.h
+--- ../work/ion-3/de/style.h   2007-02-03 17:50:52.000000000 +0300
++++ ion-3ds-20070203/de/style.h        2007-02-21 13:11:57.000000000 +0300
+@@ -76,6 +76,7 @@
+     Pixmap tag_pixmap;
+     int tag_pixmap_w;
+     int tag_pixmap_h;
++    int xft_style;
+     
+     DEStyle *next, *prev;
+ };
diff --git a/x11-wm/ion3/ion3-20070318.ebuild b/x11-wm/ion3/ion3-20070318.ebuild
new file mode 100644 (file)
index 0000000..4a89330
--- /dev/null
@@ -0,0 +1,191 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ion3-20070318.ebuild,v 1.1 2007/03/25 18:17:41 mabi Exp $
+
+inherit eutils
+
+MY_PV=${PV/_p/-}
+MY_PN=ion-3ds-${MY_PV}
+
+SCRIPTS_PV=20070322
+SCRIPTS_PN=ion3-scripts
+
+IONFLUX_PV=20061022
+IONFLUX_PN=ion3-mod-ionflux
+
+IONXRANDR_PV=20070220
+IONXRANDR_PN=ion3-mod-xrandr
+
+IONDOC_PV=20070318
+IONDOC_PN=ion3-doc
+
+
+DESCRIPTION="A tiling tabbed window manager designed with keyboard users in mind"
+HOMEPAGE="http://www.iki.fi/tuomov/ion/"
+SRC_URI="http://iki.fi/tuomov/dl/${MY_PN}.tar.gz
+       mirror://gentoo/${SCRIPTS_PN}-${SCRIPTS_PV}.tar.bz2
+       mirror://gentoo/${IONXRANDR_PN}-${IONXRANDR_PV}.tar.bz2
+       doc?    ( mirror://gentoo/${IONDOC_PN}-${IONDOC_PV}.tar.bz2 )"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+IUSE="unicode iontruetype doc"
+DEPEND="
+       || (
+               (
+                       x11-libs/libICE
+                       x11-libs/libXext
+                       x11-libs/libSM
+                       iontruetype? ( x11-libs/libXft )
+               )
+               virtual/x11
+       )
+       dev-util/pkgconfig
+       app-misc/run-mailcap
+       >=dev-lang/lua-5.1.1
+       doc? ( dev-tex/latex2html
+                       virtual/tetex )"
+
+S=${WORKDIR}/${MY_PN}
+
+SCRIPTS_DIRS="keybindings scripts statusbar statusd styles"
+MODULES="${IONXRANDR_PN}-${IONXRANDR_PV}"
+
+src_unpack() {
+       unpack ${A}
+
+       cd ${S}
+       EPATCH_SOURCE="${FILESDIR}/${PV}" EPATCH_SUFFIX="patch" epatch
+       use iontruetype && epatch ${FILESDIR}/xft-ion3-${PV}.patch
+
+
+       # Rewrite install directories to be prefixed by DESTDIR for sake of portage's sandbox
+       sed -i 's!\($(INSTALL\w*)\|rm -f\|ln -s\)\(.*\)\($(\w\+DIR)\)!\1\2$(DESTDIR)\3!g' Makefile */Makefile */*/Makefile build/rules.mk
+
+       for i in ${MODULES}
+       do
+               cd ${WORKDIR}/${i}
+               # Rewrite install directories to be prefixed by DESTDIR for sake of portage's sandbox
+               sed -i Makefile */Makefile \
+                       -e 's!\($(INSTALL\w*)\|rm -f\|ln -s\)\(.*\)\($(\w\+DIR)\)!\1\2$(DESTDIR)\3!g'
+
+       done
+       cd ${S}
+
+       # Hey guys! Implicit rules apply to include statements also. Be more careful!
+       # Fix an implicit rule that will kill the installation by rewriting a .mk
+       # should configure be given just the right set of options.
+       sed -i 's!%: %.in!ion-completeman: %: %.in!g' utils/Makefile
+
+       # Fix prestripping of files
+       sed -i mod_statusbar/ion-statusd/Makefile utils/ion-completefile/Makefile \
+               -e 's: -s::'
+
+       # Fix the docpath
+       #sed -i system.mk build/ac/system-ac.mk.in \
+       #       -e "s:\(DOCDIR=@datadir@/doc/\)@PACKAGE_TARNAME@:\1${PF}:"
+
+       cd ${S}/build/ac/
+       autoreconf -i --force
+
+       # FIX for modules
+       cd ${WORKDIR}
+       ln -s ${MY_PN} ion-3
+}
+
+src_compile() {
+       local myconf=""
+
+       myconf="${myconf} `use_enable iontruetype xft`"
+
+       # xfree 
+       if has_version '>=x11-base/xfree-4.3.0'; then
+               myconf="${myconf} --disable-xfree86-textprop-bug-workaround"
+       fi
+
+       # help out this arch as it can't handle certain shared library linkage
+       use hppa && myconf="${myconf} --disable-shared"
+
+       # unicode support
+       use unicode && myconf="${myconf} --enable-Xutf8"
+
+       cd build/ac/
+       econf \
+               ${myconf} \
+               --sysconfdir=/etc/X11 \
+
+       cd ${S}
+       make \
+               DOCDIR=/usr/share/doc/${PF} || die
+
+       for i in ${MODULES}
+       do
+       cd ${WORKDIR}/${i}
+
+       emake \
+               prefix=/usr \
+               ETCDIR=/etc/X11/ion3 \
+               SHAREDIR=/usr/share/ion3 \
+               MANDIR=/usr/share/man \
+               DOCDIR=/usr/share/doc/${PF} \
+               LOCALEDIR=/usr/share/locale \
+               LIBDIR=/usr/lib \
+               MODULEDIR=/usr/lib/ion3/mod \
+               LCDIR=/usr/lib/ion3/lc \
+               VARDIR=/var/cache/ion3
+       done
+
+       if ( use doc )
+       then
+               cd ${WORKDIR}/${IONDOC_PN}-${IONDOC_PV}
+               make all
+               make all-pdf
+       fi
+}
+
+src_install() {
+
+       emake \
+               DESTDIR=${D} \
+               DOCDIR=/usr/share/doc/${PF} \
+       install || die
+
+       echo -e "#!/bin/sh\n/usr/bin/ion3" > ${T}/ion3
+       echo -e "#!/bin/sh\n/usr/bin/pwm3" > ${T}/pwm3
+       exeinto /etc/X11/Sessions
+       doexe ${T}/ion3 ${T}/pwm3
+
+       insinto /usr/share/xsessions
+       doins ${FILESDIR}/ion3.desktop ${FILESDIR}/pwm3.desktop
+
+       cd ${WORKDIR}/${SCRIPTS_PN}-${SCRIPTS_PV}
+       insinto /usr/share/ion3
+       find $SCRIPTS_DIRS -type f |\
+               while read FILE
+               do
+                       doins $PWD/$FILE
+               done
+
+       for i in ${MODULES}
+       do
+               cd ${WORKDIR}/${i}
+
+               emake \
+                       DESTDIR=${D} \
+                       install || die
+
+       done
+
+       if ( use doc )
+       then
+               cd ${WORKDIR}/${IONDOC_PN}-${IONDOC_PV}
+               dodoc *.pdf
+       fi
+
+       sed -i -e '/dopath("mod_sp")/a\dopath("mod_xrandr")' ${D}/etc/X11/ion3/cfg_defaults.lua
+}
+
+pkg_postinst() {
+       elog "This version of ion3 contains no xinerama support (removed upstream)."
+}