summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/ion3/files')
-rw-r--r--x11-wm/ion3/files/20061223/201_all_fix-paths.patch90
-rw-r--r--x11-wm/ion3/files/20061223/202_all_fix-menus.patch13
-rw-r--r--x11-wm/ion3/files/20061223/207_all_bindings-manpage.patch117
-rw-r--r--x11-wm/ion3/files/20070203/201_all_fix-paths.patch90
-rw-r--r--x11-wm/ion3/files/20070203/202_all_fix-menus.patch13
-rw-r--r--x11-wm/ion3/files/20070203/205_all_ion-lock.patch22
-rw-r--r--x11-wm/ion3/files/20070203/207_all_bindings-manpage.patch117
-rw-r--r--x11-wm/ion3/files/20070506/200_all_fix_includes.patch22
-rw-r--r--x11-wm/ion3/files/20070506/201_all_fix-paths.patch90
-rw-r--r--x11-wm/ion3/files/20070506/205_all_ion-lock.patch22
-rw-r--r--x11-wm/ion3/files/20070608/201_all_fix-paths.patch76
-rw-r--r--x11-wm/ion3/files/20070608/202_all_fix-menus.patch13
-rw-r--r--x11-wm/ion3/files/20070608/205_all_ion-lock.patch22
-rw-r--r--x11-wm/ion3/files/20070608/208_all_as-needed.patch12
-rw-r--r--x11-wm/ion3/files/20070708/202_all_fix-menus.patch13
-rw-r--r--x11-wm/ion3/files/20070708/205_all_ion-lock.patch22
-rw-r--r--x11-wm/ion3/files/20070708/208_all_as-needed.patch12
-rw-r--r--x11-wm/ion3/files/20070720/201_all_fix-paths.patch (renamed from x11-wm/ion3/files/20070708/201_all_fix-paths.patch)0
-rw-r--r--x11-wm/ion3/files/20070720/202_all_fix-menus.patch (renamed from x11-wm/ion3/files/20070506/202_all_fix-menus.patch)0
-rw-r--r--x11-wm/ion3/files/20070720/205_all_ion-lock.patch (renamed from x11-wm/ion3/files/20061223/205_all_ion-lock.patch)0
-rw-r--r--x11-wm/ion3/files/20070720/208_all_as-needed.patch (renamed from x11-wm/ion3/files/20070506/208_all_as-needed.patch)0
-rw-r--r--x11-wm/ion3/files/digest-ion3-200603263
-rw-r--r--x11-wm/ion3/files/digest-ion3-2006122315
-rw-r--r--x11-wm/ion3/files/digest-ion3-20070506-r115
-rw-r--r--x11-wm/ion3/files/digest-ion3-200706086
-rw-r--r--x11-wm/ion3/files/digest-ion3-20070720 (renamed from x11-wm/ion3/files/digest-ion3-20070708)6
-rw-r--r--x11-wm/ion3/files/ion3-20060317-truetype.patch741
-rw-r--r--x11-wm/ion3/files/ion3-20060326-truetype.patch741
-rw-r--r--x11-wm/ion3/files/ion3-scripts-20070608.tar.bz2bin101584 -> 0 bytes
-rw-r--r--x11-wm/ion3/files/xft-ion3-20070318.patch689
-rw-r--r--x11-wm/ion3/files/xft-ion3-20070506.patch669
31 files changed, 3 insertions, 3648 deletions
diff --git a/x11-wm/ion3/files/20061223/201_all_fix-paths.patch b/x11-wm/ion3/files/20061223/201_all_fix-paths.patch
deleted file mode 100644
index 7f8f228..0000000
--- a/x11-wm/ion3/files/20061223/201_all_fix-paths.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-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/20061223/202_all_fix-menus.patch b/x11-wm/ion3/files/20061223/202_all_fix-menus.patch
deleted file mode 100644
index f218a33..0000000
--- a/x11-wm/ion3/files/20061223/202_all_fix-menus.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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
-@@ -324,7 +324,8 @@
- -- Main menu
- defmenu("mainmenu", {
- submenu("Programs", "appmenu"),
-- 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/20061223/207_all_bindings-manpage.patch b/x11-wm/ion3/files/20061223/207_all_bindings-manpage.patch
deleted file mode 100644
index 5fac548..0000000
--- a/x11-wm/ion3/files/20061223/207_all_bindings-manpage.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-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/20070203/201_all_fix-paths.patch b/x11-wm/ion3/files/20070203/201_all_fix-paths.patch
deleted file mode 100644
index 7f8f228..0000000
--- a/x11-wm/ion3/files/20070203/201_all_fix-paths.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-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/20070203/202_all_fix-menus.patch b/x11-wm/ion3/files/20070203/202_all_fix-menus.patch
deleted file mode 100644
index f218a33..0000000
--- a/x11-wm/ion3/files/20070203/202_all_fix-menus.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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
-@@ -324,7 +324,8 @@
- -- Main menu
- defmenu("mainmenu", {
- submenu("Programs", "appmenu"),
-- 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/20070203/205_all_ion-lock.patch b/x11-wm/ion3/files/20070203/205_all_ion-lock.patch
deleted file mode 100644
index dda2016..0000000
--- a/x11-wm/ion3/files/20070203/205_all_ion-lock.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-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/20070203/207_all_bindings-manpage.patch b/x11-wm/ion3/files/20070203/207_all_bindings-manpage.patch
deleted file mode 100644
index 5fac548..0000000
--- a/x11-wm/ion3/files/20070203/207_all_bindings-manpage.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-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/20070506/200_all_fix_includes.patch b/x11-wm/ion3/files/20070506/200_all_fix_includes.patch
deleted file mode 100644
index 19f7edc..0000000
--- a/x11-wm/ion3/files/20070506/200_all_fix_includes.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -uNr ion-3rc-20070506.orig/ioncore/ioncore.c ion-3rc-20070506/ioncore/ioncore.c
---- ion-3rc-20070506.orig/ioncore/ioncore.c 2007-05-12 22:04:33.000000000 +0200
-+++ ion-3rc-20070506/ioncore/ioncore.c 2007-05-12 22:23:30.000000000 +0200
-@@ -11,6 +11,7 @@
- #include <unistd.h>
- #include <fcntl.h>
- #include <string.h>
-+#include <strings.h>
- #include <errno.h>
- #include <sys/types.h>
- #include <ctype.h>
-diff -uNr ion-3rc-20070506.orig/utils/ion-completefile/ion-completefile.c ion-3rc-20070506/utils/ion-completefile/ion-completefile.c
---- ion-3rc-20070506.orig/utils/ion-completefile/ion-completefile.c 2007-05-12 22:04:33.000000000 +0200
-+++ ion-3rc-20070506/utils/ion-completefile/ion-completefile.c 2007-05-12 22:05:13.000000000 +0200
-@@ -54,6 +54,7 @@
-
- #include <sys/param.h>
- #include <sys/types.h>
-+#include <stdio.h>
- #include <stdlib.h>
- #include <dirent.h>
- #include <string.h>
diff --git a/x11-wm/ion3/files/20070506/201_all_fix-paths.patch b/x11-wm/ion3/files/20070506/201_all_fix-paths.patch
deleted file mode 100644
index 7f8f228..0000000
--- a/x11-wm/ion3/files/20070506/201_all_fix-paths.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-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/20070506/205_all_ion-lock.patch b/x11-wm/ion3/files/20070506/205_all_ion-lock.patch
deleted file mode 100644
index dda2016..0000000
--- a/x11-wm/ion3/files/20070506/205_all_ion-lock.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-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/20070608/201_all_fix-paths.patch b/x11-wm/ion3/files/20070608/201_all_fix-paths.patch
deleted file mode 100644
index a9cb080..0000000
--- a/x11-wm/ion3/files/20070608/201_all_fix-paths.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-diff -uNr ion-3rc-20070608.orig/system.mk ion-3rc-20070608/system.mk
---- ion-3rc-20070608.orig/system.mk 2007-06-08 20:42:05.000000000 +0200
-+++ ion-3rc-20070608/system.mk 2007-06-08 20:47:39.000000000 +0200
-@@ -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
-@@ -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=/usr/bin/lua5.1
--#LUAC=/usr/bin/luac5.1
-+LUA_LIBS=`pkg-config --libs lua`
-+LUA_INCLUDES=`pkg-config --cflags lua`
-+LUA=/usr/bin/lua
-+LUAC=/usr/bin/luac
-
-
- ##
-@@ -104,7 +104,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)
- # without even dummy multibyte/widechar and localisation support, you may
-@@ -143,14 +143,14 @@
-
- #C89_SOURCE=-ansi
-
--#POSIX_SOURCE=-D_POSIX_SOURCE
-+POSIX_SOURCE=-D_POSIX_C_SOURCE=200112L
-
- # 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/20070608/202_all_fix-menus.patch b/x11-wm/ion3/files/20070608/202_all_fix-menus.patch
deleted file mode 100644
index c2d77c8..0000000
--- a/x11-wm/ion3/files/20070608/202_all_fix-menus.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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/20070608/205_all_ion-lock.patch b/x11-wm/ion3/files/20070608/205_all_ion-lock.patch
deleted file mode 100644
index dda2016..0000000
--- a/x11-wm/ion3/files/20070608/205_all_ion-lock.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-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/20070608/208_all_as-needed.patch b/x11-wm/ion3/files/20070608/208_all_as-needed.patch
deleted file mode 100644
index 662a078..0000000
--- a/x11-wm/ion3/files/20070608/208_all_as-needed.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -uNr ion-3ds-20070318.orig/de/Makefile ion-3ds-20070318/de/Makefile
---- ion-3ds-20070318.orig/de/Makefile 2007-03-18 21:31:37.000000000 +0100
-+++ ion-3ds-20070318/de/Makefile 2007-04-30 17:30:23.000000000 +0200
-@@ -17,6 +17,8 @@
-
- MAKE_EXPORTS=de
-
-+LDFLAGS+=-lXext
-+
- ######################################
-
- include $(TOPDIR)/build/rules.mk
diff --git a/x11-wm/ion3/files/20070708/202_all_fix-menus.patch b/x11-wm/ion3/files/20070708/202_all_fix-menus.patch
deleted file mode 100644
index c2d77c8..0000000
--- a/x11-wm/ion3/files/20070708/202_all_fix-menus.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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/20070708/205_all_ion-lock.patch b/x11-wm/ion3/files/20070708/205_all_ion-lock.patch
deleted file mode 100644
index dda2016..0000000
--- a/x11-wm/ion3/files/20070708/205_all_ion-lock.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-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/20070708/208_all_as-needed.patch b/x11-wm/ion3/files/20070708/208_all_as-needed.patch
deleted file mode 100644
index 662a078..0000000
--- a/x11-wm/ion3/files/20070708/208_all_as-needed.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -uNr ion-3ds-20070318.orig/de/Makefile ion-3ds-20070318/de/Makefile
---- ion-3ds-20070318.orig/de/Makefile 2007-03-18 21:31:37.000000000 +0100
-+++ ion-3ds-20070318/de/Makefile 2007-04-30 17:30:23.000000000 +0200
-@@ -17,6 +17,8 @@
-
- MAKE_EXPORTS=de
-
-+LDFLAGS+=-lXext
-+
- ######################################
-
- include $(TOPDIR)/build/rules.mk
diff --git a/x11-wm/ion3/files/20070708/201_all_fix-paths.patch b/x11-wm/ion3/files/20070720/201_all_fix-paths.patch
index cb27bfc..cb27bfc 100644
--- a/x11-wm/ion3/files/20070708/201_all_fix-paths.patch
+++ b/x11-wm/ion3/files/20070720/201_all_fix-paths.patch
diff --git a/x11-wm/ion3/files/20070506/202_all_fix-menus.patch b/x11-wm/ion3/files/20070720/202_all_fix-menus.patch
index c2d77c8..c2d77c8 100644
--- a/x11-wm/ion3/files/20070506/202_all_fix-menus.patch
+++ b/x11-wm/ion3/files/20070720/202_all_fix-menus.patch
diff --git a/x11-wm/ion3/files/20061223/205_all_ion-lock.patch b/x11-wm/ion3/files/20070720/205_all_ion-lock.patch
index dda2016..dda2016 100644
--- a/x11-wm/ion3/files/20061223/205_all_ion-lock.patch
+++ b/x11-wm/ion3/files/20070720/205_all_ion-lock.patch
diff --git a/x11-wm/ion3/files/20070506/208_all_as-needed.patch b/x11-wm/ion3/files/20070720/208_all_as-needed.patch
index 662a078..662a078 100644
--- a/x11-wm/ion3/files/20070506/208_all_as-needed.patch
+++ b/x11-wm/ion3/files/20070720/208_all_as-needed.patch
diff --git a/x11-wm/ion3/files/digest-ion3-20060326 b/x11-wm/ion3/files/digest-ion3-20060326
deleted file mode 100644
index 1b1ac52..0000000
--- a/x11-wm/ion3/files/digest-ion3-20060326
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 3d5628d4efe93f2de804cf5b01abc743 ion-3ds-20060326.tar.gz 617533
-RMD160 147e6ad20c69ca8fe5a80dcd57ce6002a2b3cde1 ion-3ds-20060326.tar.gz 617533
-SHA256 9f3c96c961e47c61e9c10b57de820b608b9d9fdaa43a893e63499b3f17231124 ion-3ds-20060326.tar.gz 617533
diff --git a/x11-wm/ion3/files/digest-ion3-20061223 b/x11-wm/ion3/files/digest-ion3-20061223
deleted file mode 100644
index 1de1302..0000000
--- a/x11-wm/ion3/files/digest-ion3-20061223
+++ /dev/null
@@ -1,15 +0,0 @@
-MD5 861887705546ddb5f240f10dbdab5098 ion-3ds-20061223.tar.gz 649463
-RMD160 dc61a012354a30f1a83b8b0970b8c09724ea4c9c ion-3ds-20061223.tar.gz 649463
-SHA256 0970fef74de659de45813471560ebe2f97b893de7a238ea00755fcaeb9b7d89e ion-3ds-20061223.tar.gz 649463
-MD5 3133bab28e984dd568e03e4e3fd0cdd7 ion3-mod-ionflux_20061022.orig.tar.gz 14847
-RMD160 86bcc2a260f3e37d613bcebd66f37616e56d3926 ion3-mod-ionflux_20061022.orig.tar.gz 14847
-SHA256 f9fd872d2d5b35f882d9a9161dee52fd5b2bb346c46f9e6cc30922dcda99c935 ion3-mod-ionflux_20061022.orig.tar.gz 14847
-MD5 454d6eb52c2c7c3622582a97e8e89184 ion3-mod-xrandr-20061021.tar.bz2 10762
-RMD160 cca3f472e32b8aff1ce8af123c24e17574c1b197 ion3-mod-xrandr-20061021.tar.bz2 10762
-SHA256 cd2225a356ddfc6f02062bf23c1e90fa573661347ff185316aeae0e18eee72ef ion3-mod-xrandr-20061021.tar.bz2 10762
-MD5 fd5c13cd038464cab15134e3aaa68617 ion3-scripts_20061214.orig.tar.gz 129181
-RMD160 b22827c490f23252c1953582d24a19a5aa0aaed0 ion3-scripts_20061214.orig.tar.gz 129181
-SHA256 82e25973fcfdd282bdb3734191f8a5b0d711b2bf0cb64196d3b42351185fdbcf ion3-scripts_20061214.orig.tar.gz 129181
-MD5 83a2a2a19cb3faed66b5517e31bee17f xft-ion3-for-darcs-20061202.diff 20126
-RMD160 054efa097492531d800bca85582d5b6836567408 xft-ion3-for-darcs-20061202.diff 20126
-SHA256 6af98c329395acb46ddbdac4f0ba023c6e5344914cc06cdfa82339526ce25b3c xft-ion3-for-darcs-20061202.diff 20126
diff --git a/x11-wm/ion3/files/digest-ion3-20070506-r1 b/x11-wm/ion3/files/digest-ion3-20070506-r1
deleted file mode 100644
index bfefeec..0000000
--- a/x11-wm/ion3/files/digest-ion3-20070506-r1
+++ /dev/null
@@ -1,15 +0,0 @@
-MD5 c005ebeb89894eefbb414897d874cee6 ion-3rc-20070506.tar.gz 640482
-RMD160 b5dda6a7a48c1f3d433b2a2b1c37294ece79a259 ion-3rc-20070506.tar.gz 640482
-SHA256 850dce3bd1be5d200fda5ba3e6085f397b35c720f7758dc5481bf503fe5d2f56 ion-3rc-20070506.tar.gz 640482
-MD5 45dc4b83f2badbade8389953b3c49da7 ion-doc-3rc-20070506.tar.gz 669471
-RMD160 aa9e75b60c121d3cd62f60afed4592fe1bc0da87 ion-doc-3rc-20070506.tar.gz 669471
-SHA256 9dac4f5e69121b98cf6e5da455d6185f00605cf237f14fc4f8578446f622476e ion-doc-3rc-20070506.tar.gz 669471
-MD5 c8c2d7b039f751db017275f5f977702e ion3-mod-ionflux-20070512.tar.bz2 12770
-RMD160 8e834de0c3048b676bc5c5d5454aedac09129eb3 ion3-mod-ionflux-20070512.tar.bz2 12770
-SHA256 63c4902159923aa02921e39aa7746ca8819ba1c216efa8fa6384fd093f60d18c ion3-mod-ionflux-20070512.tar.bz2 12770
-MD5 dcb17665b215d0891be40392f57197c1 ion3-mod-xrandr-20070410.tar.bz2 10833
-RMD160 8542c0dfebfd1536e6a1ad89a3b791609ca8f16e ion3-mod-xrandr-20070410.tar.bz2 10833
-SHA256 80f23a435b21f8691fc63b78394fa29b25b5304f46895dd961ac905bcc76c82f ion3-mod-xrandr-20070410.tar.bz2 10833
-MD5 33495ed87edd9c5734a1c413847a3b3d ion3-scripts-20070510.tar.bz2 100952
-RMD160 4ac0fff86a039d5890bd934d80c33bb5a78fb02d ion3-scripts-20070510.tar.bz2 100952
-SHA256 53c4705ab6f880404aae92cef3018a956ee1b55d0e22ef93c12d30527a419a61 ion3-scripts-20070510.tar.bz2 100952
diff --git a/x11-wm/ion3/files/digest-ion3-20070608 b/x11-wm/ion3/files/digest-ion3-20070608
deleted file mode 100644
index 0afc069..0000000
--- a/x11-wm/ion3/files/digest-ion3-20070608
+++ /dev/null
@@ -1,6 +0,0 @@
-MD5 ba02edff5d4726104f98fa70b6cd96d8 ion-3rc-20070608.tar.gz 655442
-RMD160 41fd6d581e27770e63f7bc66122684d8c11667f2 ion-3rc-20070608.tar.gz 655442
-SHA256 1ebad89f61c3ac58bd583cfe3a0cb71c5254679a9f35f46d954d6e72eada86e8 ion-3rc-20070608.tar.gz 655442
-MD5 45dc4b83f2badbade8389953b3c49da7 ion-doc-3rc-20070506.tar.gz 669471
-RMD160 aa9e75b60c121d3cd62f60afed4592fe1bc0da87 ion-doc-3rc-20070506.tar.gz 669471
-SHA256 9dac4f5e69121b98cf6e5da455d6185f00605cf237f14fc4f8578446f622476e ion-doc-3rc-20070506.tar.gz 669471
diff --git a/x11-wm/ion3/files/digest-ion3-20070708 b/x11-wm/ion3/files/digest-ion3-20070720
index 0f91241..fccc717 100644
--- a/x11-wm/ion3/files/digest-ion3-20070708
+++ b/x11-wm/ion3/files/digest-ion3-20070720
@@ -1,6 +1,6 @@
-MD5 c9782f343d0c50bef81573644eb7e176 ion-3rc-20070708.tar.gz 655000
-RMD160 85947dc1b1dd7abd4304a42e2e946a7641cda8c4 ion-3rc-20070708.tar.gz 655000
-SHA256 f59eafbda1f13d5d21129c222a4c64b9ce7a4e7b3f9fd93bb739dfd5af1fca0f ion-3rc-20070708.tar.gz 655000
+MD5 cef18d7a4aa476b400ecf722c57f6e6a ion-3rc-20070720.tar.gz 655409
+RMD160 a97944850d88b81dd20d234f3f114e9f3038d0b3 ion-3rc-20070720.tar.gz 655409
+SHA256 c1d412444bbcbb541adab4efd9fecb131065f3c8c908b2fe9dd17707ac03df61 ion-3rc-20070720.tar.gz 655409
MD5 42db17925e8e745c2385f1b42fa26f78 ion-doc-3rc-20070708.tar.gz 669854
RMD160 ba3bdb7b4ca4331738faa0aa2501d662644d0a39 ion-doc-3rc-20070708.tar.gz 669854
SHA256 d1651f219a43f413de618a7bf158ddbc42c2c3025807965271c97214bba10ef3 ion-doc-3rc-20070708.tar.gz 669854
diff --git a/x11-wm/ion3/files/ion3-20060317-truetype.patch b/x11-wm/ion3/files/ion3-20060317-truetype.patch
deleted file mode 100644
index 2675dfd..0000000
--- a/x11-wm/ion3/files/ion3-20060317-truetype.patch
+++ /dev/null
@@ -1,741 +0,0 @@
-diff -Naur ion-3ds-20060317/configure.ac ion-3ds/configure.ac
---- ion-3ds-20060317/configure.ac 2006-03-17 20:43:29.000000000 +0100
-+++ ion-3ds/configure.ac 2006-03-17 23:17:45.000000000 +0100
-@@ -420,6 +420,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 ion-3ds-20060317/de/brush.c ion-3ds/de/brush.c
---- ion-3ds-20060317/de/brush.c 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/brush.c 2006-03-17 23:17:45.000000000 +0100
-@@ -37,7 +37,9 @@
- brush->indicator_w=0;
- brush->win=win;
- brush->clip_set=FALSE;
--
-+#ifdef XFT
-+ brush->draw=NULL;
-+#endif /* XFT */
- style->usecount++;
-
- if(!grbrush_init(&(brush->grbrush))){
-@@ -65,7 +67,6 @@
- CREATEOBJ_IMPL(DEBrush, debrush, (p, win, stylename, style));
- }
-
--
- static DEBrush *do_get_brush(Window win, WRootWin *rootwin,
- const char *stylename, bool slave)
- {
-@@ -104,6 +105,10 @@
- {
- destyle_unref(brush->d);
- brush->d=NULL;
-+#ifdef XFT
-+ if(brush->draw!=NULL)
-+ XftDrawDestroy(brush->draw);
-+#endif /* XFT */
- grbrush_deinit(&(brush->grbrush));
- }
-
-@@ -114,6 +119,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 ion-3ds-20060317/de/brush.h ion-3ds/de/brush.h
---- ion-3ds-20060317/de/brush.h 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/brush.h 2006-03-17 23:17:45.000000000 +0100
-@@ -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);
-
-@@ -34,6 +37,9 @@
- DECLCLASS(DEBrush){
- GrBrush grbrush;
- DEStyle *d;
-+#ifdef XFT
-+ XftDraw *draw;
-+#endif
- DEBrushExtrasFn *extras_fn;
- int indicator_w;
- Window win;
-@@ -104,5 +110,8 @@
- const char *attr);
- 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 ion-3ds-20060317/de/colour.c ion-3ds/de/colour.c
---- ion-3ds-20060317/de/colour.c 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/colour.c 2006-03-17 23:17:45.000000000 +0100
-@@ -12,12 +12,23 @@
- #include <ioncore/common.h>
- #include "colour.h"
-
--
- 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 +39,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 +54,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;
-@@ -60,15 +82,26 @@
- free(cg->spec);
- cg->spec=NULL;
- }
-+#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 ion-3ds-20060317/de/colour.h ion-3ds/de/colour.h
---- ion-3ds-20060317/de/colour.h 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/colour.h 2006-03-17 23:17:45.000000000 +0100
-@@ -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 ion-3ds-20060317/de/draw.c ion-3ds/de/draw.c
---- ion-3ds-20060317/de/draw.c 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/draw.c 2006-03-17 23:17:45.000000000 +0100
-@@ -79,7 +79,11 @@
- w--;
- h--;
-
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, tlc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, tlc.pixel);
-+#endif /* XFT */
-
-
- a=(br!=0);
-@@ -99,7 +103,11 @@
- }
-
-
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, brc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, brc.pixel);
-+#endif /* XFT */
-
- a=(tl!=0);
- b=0;
-@@ -174,19 +182,35 @@
- GrBorderLine line)
- {
- if(line==GR_BORDERLINE_LEFT && geom->h>0){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, tlc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, tlc.pixel);
-+#endif /* XFT */
- XDrawRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, tl, geom->h);
- geom->x+=tl;
- }else if(line==GR_BORDERLINE_TOP && geom->w>0){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, tlc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, tlc.pixel);
-+#endif /* XFT */
- XDrawRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, geom->w, tl);
- geom->y+=tl;
- }else if(line==GR_BORDERLINE_RIGHT && geom->h>0){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, brc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, brc.pixel);
-+#endif /* XFT */
- XDrawRectangle(ioncore_g.dpy, win, gc, geom->x+geom->w-1-br, geom->y, br, geom->h);
- geom->w-=br;
- }else if(line==GR_BORDERLINE_BOTTOM && geom->w>0){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, brc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, brc.pixel);
-+#endif /* XFT */
- XDrawRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y+geom->h-1-br, geom->w, br);
- geom->h-=br;
- }
-@@ -276,7 +300,11 @@
- }
-
- if(MATCHES2("*-*-tagged", a1, a2)){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, d->copy_gc, cg->fg);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, d->copy_gc, cg->fg.pixel);
-+#endif /* XFT */
-
- copy_masked(brush, d->tag_pixmap, brush->win, 0, 0,
- d->tag_pixmap_w, d->tag_pixmap_h,
-@@ -326,7 +354,11 @@
- GC gc=brush->d->normal_gc;
-
- if(TRUE/*needfill*/){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, cg->bg);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, cg->bg.pixel);
-+#endif /* XFT */
- XFillRectangle(ioncore_g.dpy, brush->win, gc, geom->x, geom->y,
- geom->w, geom->h);
- }
-@@ -468,7 +500,11 @@
- attr.background_pixmap=ParentRelative;
- }else{
- attrflags=CWBackPixel;
-+#ifndef XFT
- attr.background_pixel=brush->d->cgrp.bg;
-+#else /* XFT */
-+ attr.background_pixel=brush->d->cgrp.bg.pixel;
-+#endif /* XFT */
- }
-
- XChangeWindowAttributes(ioncore_g.dpy, brush->win, attrflags, &attr);
-@@ -484,7 +520,11 @@
- if(cg==NULL)
- return;
-
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, cg->bg);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, cg->bg.pixel);
-+#endif /* XFT */
- XFillRectangle(ioncore_g.dpy, brush->win, gc,
- geom->x, geom->y, geom->w, geom->h);
- }
-diff -Naur ion-3ds-20060317/de/font.c ion-3ds/de/font.c
---- ion-3ds-20060317/de/font.c 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/font.c 2006-03-17 23:17:45.000000000 +0100
-@@ -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,10 +28,13 @@
-
- DEFont *de_load_font(const char *fontname)
- {
-+#ifdef XFT
-+ XftFont *font;
-+#endif
- DEFont *fnt;
- XFontSet fontset=NULL;
- XFontStruct *fontstruct=NULL;
--
-+
- assert(fontname!=NULL);
-
- /* There shouldn't be that many fonts... */
-@@ -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;
-+ 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,13 +156,17 @@
- 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);
--
-+ free(font->pattern);
- UNLINK_ITEM(fonts, font, next, prev);
- free(font);
- }
-@@ -156,6 +191,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 +207,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 +231,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 +269,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 +315,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(TRUE/*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, 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 ion-3ds-20060317/de/font.h ion-3ds/de/font.h
---- ion-3ds-20060317/de/font.h 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/font.h 2006-03-17 23:17:45.000000000 +0100
-@@ -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 ion-3ds-20060317/de/init.c ion-3ds/de/init.c
---- ion-3ds-20060317/de/init.c 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/init.c 2006-03-17 23:17:45.000000000 +0100
-@@ -113,16 +113,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);
- }
-
-
-@@ -329,7 +332,6 @@
-
- char de_ion_api_version[]=ION_API_VERSION;
-
--
- bool de_init()
- {
- WRootWin *rootwin;
-diff -Naur ion-3ds-20060317/de/Makefile ion-3ds/de/Makefile
---- ion-3ds-20060317/de/Makefile 2006-03-17 20:43:01.000000000 +0100
-+++ ion-3ds/de/Makefile 2006-03-17 23:17:45.000000000 +0100
-@@ -8,13 +8,12 @@
-
- ######################################
-
-+
- INCLUDES += $(X11_INCLUDES) $(LIBTU_INCLUDES) $(LIBEXTL_INCLUDES) -I..
- CFLAGS += $(XOPEN_SOURCE) $(C99_SOURCE)
-
- SOURCES=init.c draw.c font.c colour.c brush.c fontset.c style.c
--
- MODULE=de
--
- MAKE_EXPORTS=de
-
- ######################################
-diff -Naur ion-3ds-20060317/de/style.c ion-3ds/de/style.c
---- ion-3ds-20060317/de/style.c 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/style.c 2006-03-17 23:17:45.000000000 +0100
-@@ -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,
-@@ -206,6 +213,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 */
- style->style=scopy(name);
- if(style->style==NULL)
- return FALSE;
-@@ -229,11 +244,11 @@
-
- style->cgrp_alloced=FALSE;
- style->cgrp.spec=NULL;
-- 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;
-
- style->font=NULL;
-
-@@ -255,7 +270,7 @@
- static DEStyle *do_create_style(WRootWin *rootwin, const char *name)
- {
- DEStyle *style=ALLOC(DEStyle);
-- if(style!=NULL){
-+ if(style!=NULL) {
- if(!destyle_init(style, rootwin, name)){
- free(style);
- return NULL;
-diff -Naur ion-3ds-20060317/de/style.h ion-3ds/de/style.h
---- ion-3ds-20060317/de/style.h 2006-03-17 20:43:04.000000000 +0100
-+++ ion-3ds/de/style.h 2006-03-17 23:17:45.000000000 +0100
-@@ -76,6 +76,7 @@
- Pixmap tag_pixmap;
- int tag_pixmap_w;
- int tag_pixmap_h;
-+ int xft_style;
-
- DEStyle *next, *prev;
- };
-diff -Naur ion-3ds-20060317/system-ac.mk.in ion-3ds/system-ac.mk.in
---- ion-3ds-20060317/system-ac.mk.in 2006-03-17 20:43:03.000000000 +0100
-+++ ion-3ds/system-ac.mk.in 2006-03-17 23:17:45.000000000 +0100
-@@ -188,3 +188,7 @@
- STRIP=@STRIP@
-
- RM=rm
-+
-+### XFT Support
-+CFLAGS+=@XFT_CFLAGS@
-+LIBS+=@XFT_LIBS@
diff --git a/x11-wm/ion3/files/ion3-20060326-truetype.patch b/x11-wm/ion3/files/ion3-20060326-truetype.patch
deleted file mode 100644
index ea94577..0000000
--- a/x11-wm/ion3/files/ion3-20060326-truetype.patch
+++ /dev/null
@@ -1,741 +0,0 @@
-diff -Naur ion-3ds-20060326/configure.ac ion-3ds/configure.ac
---- ion-3ds-20060326/configure.ac 2006-03-26 11:37:58.000000000 +0200
-+++ ion-3ds/configure.ac 2006-04-06 10:08:37.000000000 +0200
-@@ -420,6 +420,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 ion-3ds-20060326/de/brush.c ion-3ds/de/brush.c
---- ion-3ds-20060326/de/brush.c 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/brush.c 2006-04-06 10:08:37.000000000 +0200
-@@ -37,7 +37,9 @@
- brush->indicator_w=0;
- brush->win=win;
- brush->clip_set=FALSE;
--
-+#ifdef XFT
-+ brush->draw=NULL;
-+#endif /* XFT */
- style->usecount++;
-
- if(!grbrush_init(&(brush->grbrush))){
-@@ -65,7 +67,6 @@
- CREATEOBJ_IMPL(DEBrush, debrush, (p, win, stylename, style));
- }
-
--
- static DEBrush *do_get_brush(Window win, WRootWin *rootwin,
- const char *stylename, bool slave)
- {
-@@ -104,6 +105,10 @@
- {
- destyle_unref(brush->d);
- brush->d=NULL;
-+#ifdef XFT
-+ if(brush->draw!=NULL)
-+ XftDrawDestroy(brush->draw);
-+#endif /* XFT */
- grbrush_deinit(&(brush->grbrush));
- }
-
-@@ -114,6 +119,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 ion-3ds-20060326/de/brush.h ion-3ds/de/brush.h
---- ion-3ds-20060326/de/brush.h 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/brush.h 2006-04-06 10:08:37.000000000 +0200
-@@ -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);
-
-@@ -34,6 +37,9 @@
- DECLCLASS(DEBrush){
- GrBrush grbrush;
- DEStyle *d;
-+#ifdef XFT
-+ XftDraw *draw;
-+#endif
- DEBrushExtrasFn *extras_fn;
- int indicator_w;
- Window win;
-@@ -104,5 +110,8 @@
- const char *attr);
- 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 ion-3ds-20060326/de/colour.c ion-3ds/de/colour.c
---- ion-3ds-20060326/de/colour.c 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/colour.c 2006-04-06 10:08:37.000000000 +0200
-@@ -12,12 +12,23 @@
- #include <ioncore/common.h>
- #include "colour.h"
-
--
- 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 +39,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 +54,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;
-@@ -60,15 +82,26 @@
- free(cg->spec);
- cg->spec=NULL;
- }
-+#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 ion-3ds-20060326/de/colour.h ion-3ds/de/colour.h
---- ion-3ds-20060326/de/colour.h 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/colour.h 2006-04-06 10:08:37.000000000 +0200
-@@ -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 ion-3ds-20060326/de/draw.c ion-3ds/de/draw.c
---- ion-3ds-20060326/de/draw.c 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/draw.c 2006-04-06 10:08:37.000000000 +0200
-@@ -79,7 +79,11 @@
- w--;
- h--;
-
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, tlc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, tlc.pixel);
-+#endif /* XFT */
-
-
- a=(br!=0);
-@@ -99,7 +103,11 @@
- }
-
-
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, brc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, brc.pixel);
-+#endif /* XFT */
-
- a=(tl!=0);
- b=0;
-@@ -174,19 +182,35 @@
- GrBorderLine line)
- {
- if(line==GR_BORDERLINE_LEFT && geom->h>0){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, tlc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, tlc.pixel);
-+#endif /* XFT */
- XDrawRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, tl, geom->h);
- geom->x+=tl;
- }else if(line==GR_BORDERLINE_TOP && geom->w>0){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, tlc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, tlc.pixel);
-+#endif /* XFT */
- XDrawRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, geom->w, tl);
- geom->y+=tl;
- }else if(line==GR_BORDERLINE_RIGHT && geom->h>0){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, brc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, brc.pixel);
-+#endif /* XFT */
- XDrawRectangle(ioncore_g.dpy, win, gc, geom->x+geom->w-1-br, geom->y, br, geom->h);
- geom->w-=br;
- }else if(line==GR_BORDERLINE_BOTTOM && geom->w>0){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, brc);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, brc.pixel);
-+#endif /* XFT */
- XDrawRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y+geom->h-1-br, geom->w, br);
- geom->h-=br;
- }
-@@ -276,7 +300,11 @@
- }
-
- if(MATCHES2("*-*-tagged", a1, a2)){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, d->copy_gc, cg->fg);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, d->copy_gc, cg->fg.pixel);
-+#endif /* XFT */
-
- copy_masked(brush, d->tag_pixmap, brush->win, 0, 0,
- d->tag_pixmap_w, d->tag_pixmap_h,
-@@ -326,7 +354,11 @@
- GC gc=brush->d->normal_gc;
-
- if(TRUE/*needfill*/){
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, cg->bg);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, cg->bg.pixel);
-+#endif /* XFT */
- XFillRectangle(ioncore_g.dpy, brush->win, gc, geom->x, geom->y,
- geom->w, geom->h);
- }
-@@ -468,7 +500,11 @@
- attr.background_pixmap=ParentRelative;
- }else{
- attrflags=CWBackPixel;
-+#ifndef XFT
- attr.background_pixel=brush->d->cgrp.bg;
-+#else /* XFT */
-+ attr.background_pixel=brush->d->cgrp.bg.pixel;
-+#endif /* XFT */
- }
-
- XChangeWindowAttributes(ioncore_g.dpy, brush->win, attrflags, &attr);
-@@ -484,7 +520,11 @@
- if(cg==NULL)
- return;
-
-+#ifndef XFT
- XSetForeground(ioncore_g.dpy, gc, cg->bg);
-+#else /* XFT */
-+ XSetForeground(ioncore_g.dpy, gc, cg->bg.pixel);
-+#endif /* XFT */
- XFillRectangle(ioncore_g.dpy, brush->win, gc,
- geom->x, geom->y, geom->w, geom->h);
- }
-diff -Naur ion-3ds-20060326/de/font.c ion-3ds/de/font.c
---- ion-3ds-20060326/de/font.c 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/font.c 2006-04-06 10:08:37.000000000 +0200
-@@ -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,10 +28,13 @@
-
- DEFont *de_load_font(const char *fontname)
- {
-+#ifdef XFT
-+ XftFont *font;
-+#endif
- DEFont *fnt;
- XFontSet fontset=NULL;
- XFontStruct *fontstruct=NULL;
--
-+
- assert(fontname!=NULL);
-
- /* There shouldn't be that many fonts... */
-@@ -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;
-+ 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,13 +156,17 @@
- 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);
--
-+ free(font->pattern);
- UNLINK_ITEM(fonts, font, next, prev);
- free(font);
- }
-@@ -156,6 +191,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 +207,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 +231,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 +269,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 +315,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(TRUE/*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, 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 ion-3ds-20060326/de/font.h ion-3ds/de/font.h
---- ion-3ds-20060326/de/font.h 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/font.h 2006-04-06 10:08:37.000000000 +0200
-@@ -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 ion-3ds-20060326/de/init.c ion-3ds/de/init.c
---- ion-3ds-20060326/de/init.c 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/init.c 2006-04-06 10:08:37.000000000 +0200
-@@ -113,16 +113,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);
- }
-
-
-@@ -329,7 +332,6 @@
-
- char de_ion_api_version[]=ION_API_VERSION;
-
--
- bool de_init()
- {
- WRootWin *rootwin;
-diff -Naur ion-3ds-20060326/de/Makefile ion-3ds/de/Makefile
---- ion-3ds-20060326/de/Makefile 2006-03-26 11:37:32.000000000 +0200
-+++ ion-3ds/de/Makefile 2006-04-06 10:08:37.000000000 +0200
-@@ -8,13 +8,12 @@
-
- ######################################
-
-+
- INCLUDES += $(X11_INCLUDES) $(LIBTU_INCLUDES) $(LIBEXTL_INCLUDES) -I..
- CFLAGS += $(XOPEN_SOURCE) $(C99_SOURCE)
-
- SOURCES=init.c draw.c font.c colour.c brush.c fontset.c style.c
--
- MODULE=de
--
- MAKE_EXPORTS=de
-
- ######################################
-diff -Naur ion-3ds-20060326/de/style.c ion-3ds/de/style.c
---- ion-3ds-20060326/de/style.c 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/style.c 2006-04-06 10:08:37.000000000 +0200
-@@ -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,
-@@ -206,6 +213,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 */
- style->style=scopy(name);
- if(style->style==NULL)
- return FALSE;
-@@ -229,11 +244,11 @@
-
- style->cgrp_alloced=FALSE;
- style->cgrp.spec=NULL;
-- 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;
-
- style->font=NULL;
-
-@@ -255,7 +270,7 @@
- static DEStyle *do_create_style(WRootWin *rootwin, const char *name)
- {
- DEStyle *style=ALLOC(DEStyle);
-- if(style!=NULL){
-+ if(style!=NULL) {
- if(!destyle_init(style, rootwin, name)){
- free(style);
- return NULL;
-diff -Naur ion-3ds-20060326/de/style.h ion-3ds/de/style.h
---- ion-3ds-20060326/de/style.h 2006-03-26 11:37:34.000000000 +0200
-+++ ion-3ds/de/style.h 2006-04-06 10:08:37.000000000 +0200
-@@ -76,6 +76,7 @@
- Pixmap tag_pixmap;
- int tag_pixmap_w;
- int tag_pixmap_h;
-+ int xft_style;
-
- DEStyle *next, *prev;
- };
-diff -Naur ion-3ds-20060326/system-ac.mk.in ion-3ds/system-ac.mk.in
---- ion-3ds-20060326/system-ac.mk.in 2006-03-26 11:37:33.000000000 +0200
-+++ ion-3ds/system-ac.mk.in 2006-04-06 10:08:37.000000000 +0200
-@@ -188,3 +188,7 @@
- STRIP=@STRIP@
-
- RM=rm
-+
-+### XFT Support
-+CFLAGS+=@XFT_CFLAGS@
-+LIBS+=@XFT_LIBS@
diff --git a/x11-wm/ion3/files/ion3-scripts-20070608.tar.bz2 b/x11-wm/ion3/files/ion3-scripts-20070608.tar.bz2
deleted file mode 100644
index 949a24d..0000000
--- a/x11-wm/ion3/files/ion3-scripts-20070608.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/x11-wm/ion3/files/xft-ion3-20070318.patch b/x11-wm/ion3/files/xft-ion3-20070318.patch
deleted file mode 100644
index f2d9658..0000000
--- a/x11-wm/ion3/files/xft-ion3-20070318.patch
+++ /dev/null
@@ -1,689 +0,0 @@
-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/files/xft-ion3-20070506.patch b/x11-wm/ion3/files/xft-ion3-20070506.patch
deleted file mode 100644
index 0cff558..0000000
--- a/x11-wm/ion3/files/xft-ion3-20070506.patch
+++ /dev/null
@@ -1,669 +0,0 @@
-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(ISSET(a2, GR_ATTR(tagged)) || ISSET(a1, GR_ATTR(tagged))){
-- 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
-@@ -165,17 +165,26 @@
- {
- bool bgset;
- DEColour padinh;
--
-+ 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, "highlight_colour",
-- (based_on ? based_on->cgrp.hl : DE_WHITE(rootwin)));
-+ (based_on ? based_on->cgrp.hl : white));
- de_get_colour(rootwin, &(cg->sh), tab, "shadow_colour",
-- (based_on ? based_on->cgrp.sh : DE_WHITE(rootwin)));
-+ (based_on ? based_on->cgrp.sh : white));
- de_get_colour(rootwin, &(cg->fg), tab, "foreground_colour",
-- (based_on ? based_on->cgrp.fg : DE_WHITE(rootwin)));
-+ (based_on ? based_on->cgrp.fg : white));
- bgset=de_get_colour(rootwin, &(cg->bg), tab, "background_colour",
-- (based_on ? based_on->cgrp.bg : DE_BLACK(rootwin)));
-+ (based_on ? based_on->cgrp.bg : black));
-
-- padinh=(based_on ? based_on->cgrp.pad : DE_WHITE(rootwin));
-+ padinh=(based_on ? based_on->cgrp.pad : white);
-
- de_get_colour_(rootwin, &(cg->pad), tab, "padding_colour",
- (bgset ? cg->bg : padinh), padinh);
-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;
- };
---- ../work/ion-3/system.mk 2007-05-10 22:45:16.000000000 +0400
-+++ ion-3ds-20070203/system.mk 2007-05-10 22:45:07.000000000 +0400
-@@ -115,6 +115,16 @@
- #EXTRA_LIBS += -lintl
- #EXTRA_INCLUDES +=
-
-+##
-+## Xft support
-+##
-+
-+#USE_XFT=1
-+
-+ifeq ($(USE_XFT),1)
-+EXTRA_INCLUDES += `xft-config --cflags` -DXFT
-+EXTRA_LIBS += `xft-config --libs`
-+endif
-
- ##
- ## C compiler