summaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
authorTom William Payne <twp@gentoo.org>2006-03-17 22:28:57 +0000
committerTom William Payne <twp@gentoo.org>2006-03-17 22:28:57 +0000
commit1385f59ed5752b96e25a9a094de7d1f32700820c (patch)
treef294808bd768fc16e1180399914787a2821b0adb /x11-wm
parentStable on x86 wrt bug #126321. (diff)
downloadgentoo-2-1385f59ed5752b96e25a9a094de7d1f32700820c.tar.gz
gentoo-2-1385f59ed5752b96e25a9a094de7d1f32700820c.tar.bz2
gentoo-2-1385f59ed5752b96e25a9a094de7d1f32700820c.zip
Version bump.
(Portage version: 2.1_pre6-r3)
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/ion3/ChangeLog9
-rw-r--r--x11-wm/ion3/Manifest15
-rw-r--r--x11-wm/ion3/files/digest-ion3-200601071
-rw-r--r--x11-wm/ion3/files/digest-ion3-200603173
-rw-r--r--x11-wm/ion3/files/ion3-20060317-truetype.patch741
-rw-r--r--x11-wm/ion3/ion3-20060317.ebuild (renamed from x11-wm/ion3/ion3-20060107.ebuild)11
6 files changed, 770 insertions, 10 deletions
diff --git a/x11-wm/ion3/ChangeLog b/x11-wm/ion3/ChangeLog
index 651d348d9242..b6009360d07d 100644
--- a/x11-wm/ion3/ChangeLog
+++ b/x11-wm/ion3/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for x11-wm/ion3
# Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ChangeLog,v 1.34 2006/03/14 19:33:21 twp Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ChangeLog,v 1.35 2006/03/17 22:28:57 twp Exp $
+
+*ion3-20060317 (17 Mar 2006)
+
+ 17 Mar 2006; Tom Payne <twp@gentoo.org>
+ +files/ion3-20060317-truetype.patch, -ion3-20060107.ebuild,
+ +ion3-20060317.ebuild:
+ Version bump.
*ion3-20060305-r1 (14 Mar 2006)
diff --git a/x11-wm/ion3/Manifest b/x11-wm/ion3/Manifest
index 187a00851160..9cec95094335 100644
--- a/x11-wm/ion3/Manifest
+++ b/x11-wm/ion3/Manifest
@@ -1,33 +1,36 @@
MD5 6c9dca5eb7f172342a1998bd3037b07e ChangeLog 5008
RMD160 f4f269baef5af504f0eccdc48a894cc646e82cbc ChangeLog 5008
SHA256 98e842e85bf3a01062cf6aa2746df467f8d7e013fbcd1ed8b36052a64cf1ea02 ChangeLog 5008
-MD5 5145eaa7f679d9475e8a54bb546ceaad files/digest-ion3-20060107 68
-RMD160 e44ca91ac009c39cbd0e925e64a0649777a9ce46 files/digest-ion3-20060107 68
-SHA256 5ad3ec799bb6983c4ee969db4d9bd74fe0a3a9775e07125b471272a0f405483a files/digest-ion3-20060107 68
MD5 764299c135999d5a350831c69d4520d4 files/digest-ion3-20060305 250
RMD160 3389ce92742818a91a3164fc2ee60fcf1fddd4b6 files/digest-ion3-20060305 250
SHA256 8caabcf6d2560d47a391585597ef1ff7bf8518cdb458be2e88d4caf20d6d9021 files/digest-ion3-20060305 250
MD5 764299c135999d5a350831c69d4520d4 files/digest-ion3-20060305-r1 250
RMD160 3389ce92742818a91a3164fc2ee60fcf1fddd4b6 files/digest-ion3-20060305-r1 250
SHA256 8caabcf6d2560d47a391585597ef1ff7bf8518cdb458be2e88d4caf20d6d9021 files/digest-ion3-20060305-r1 250
+MD5 3adf9ee42ab5c87188426e4defe23795 files/digest-ion3-20060317 250
+RMD160 0aa4be8eac7962ae49ac567b0fe79e236876f5a1 files/digest-ion3-20060317 250
+SHA256 3e55c74d6c74ae74dc94093bcc744021f36cd5eedd32b5c732f3769281846d2a files/digest-ion3-20060317 250
MD5 3fc017993b48b77412323822dc684cf0 files/ion3-20060305-truetype.patch 20388
RMD160 ad321417fa5c21ae8afd3687ef862759f52d75e9 files/ion3-20060305-truetype.patch 20388
SHA256 f1b338f7e4522f534247adeac1215f368dd94d97bcec7d70a35bbcf3b66706bc files/ion3-20060305-truetype.patch 20388
+MD5 f77e47b00b912f3b0b6bb35a53f158a1 files/ion3-20060317-truetype.patch 19704
+RMD160 6a11b4d81926224171618c036b5597948e23d89a files/ion3-20060317-truetype.patch 19704
+SHA256 a1934d7ea40f959579b4b4b20f08bcbc9f037beb7e50737f8110273f7f5f58d5 files/ion3-20060317-truetype.patch 19704
MD5 00450ed1292b72e2be71b9860c4db6ee files/ion3.desktop 217
RMD160 438917d6c0370e7a368598ea611ec7658312627d files/ion3.desktop 217
SHA256 4742797e200b956abf3d0b94d860aa7430c9f67a97f3640ef2c28168fa773bb9 files/ion3.desktop 217
MD5 e5e408ab1f83116c2138a26b20c86653 files/pwm3.desktop 170
RMD160 7a33137ccf3857cacd7ff693df2e8952e16e3a84 files/pwm3.desktop 170
SHA256 e068670634d31e58db4f54e703707f7908d30ced7f765e30ab590615b3d5dccd files/pwm3.desktop 170
-MD5 07338da2e4a5cfa405fde336fc19af4c ion3-20060107.ebuild 1701
-RMD160 0060a8b265a6d322613b477312816e143c809018 ion3-20060107.ebuild 1701
-SHA256 b2d19c67680d67e05547eb50b15543f8abb7914c2942b8e9557283e83cf072d6 ion3-20060107.ebuild 1701
MD5 a019d9148ee9b9663c12078a458318bc ion3-20060305-r1.ebuild 1859
RMD160 a7c7ba8e188d6c8eb4a33eb263a9a037382095b0 ion3-20060305-r1.ebuild 1859
SHA256 bfc8c02195e02b4fcfb37a8b5cf9be0201d99074ee9f1839eff36f62c19892cd ion3-20060305-r1.ebuild 1859
MD5 f1c24872e569d962f09eb1d704555e3a ion3-20060305.ebuild 1697
RMD160 6a497732b75b5dee02e801816605cfecdf41645a ion3-20060305.ebuild 1697
SHA256 a9d3c2f1ca87b782c61d140d418cc5163e6f493014e52002f1b63c5b83c9e8b0 ion3-20060305.ebuild 1697
+MD5 a019d9148ee9b9663c12078a458318bc ion3-20060317.ebuild 1859
+RMD160 a7c7ba8e188d6c8eb4a33eb263a9a037382095b0 ion3-20060317.ebuild 1859
+SHA256 bfc8c02195e02b4fcfb37a8b5cf9be0201d99074ee9f1839eff36f62c19892cd ion3-20060317.ebuild 1859
MD5 d992d28bec4a3bfd72b441145091a58e metadata.xml 244
RMD160 10fcb6c60f0d88174ff99fd391d0da3a75bdf89d metadata.xml 244
SHA256 c7b6d3457d4746a2b281c4ac598bcf78b8e1553d8d63f2523b4cd0f4eaa422b1 metadata.xml 244
diff --git a/x11-wm/ion3/files/digest-ion3-20060107 b/x11-wm/ion3/files/digest-ion3-20060107
deleted file mode 100644
index b9a5054f9c82..000000000000
--- a/x11-wm/ion3/files/digest-ion3-20060107
+++ /dev/null
@@ -1 +0,0 @@
-MD5 434b7b97acc8d77a93b65529fe118002 ion-3ds-20060107.tar.gz 597794
diff --git a/x11-wm/ion3/files/digest-ion3-20060317 b/x11-wm/ion3/files/digest-ion3-20060317
new file mode 100644
index 000000000000..1e1cd65bc054
--- /dev/null
+++ b/x11-wm/ion3/files/digest-ion3-20060317
@@ -0,0 +1,3 @@
+MD5 bed9ee5b45cbb46ee086c2b2ed2bf5d4 ion-3ds-20060317.tar.gz 613630
+RMD160 0be63bdc4aae60199b3f8d82c185866798246927 ion-3ds-20060317.tar.gz 613630
+SHA256 1519d7d587aa13e53dac22ead639b883c00fe79a3b8268da4869c44e10afc180 ion-3ds-20060317.tar.gz 613630
diff --git a/x11-wm/ion3/files/ion3-20060317-truetype.patch b/x11-wm/ion3/files/ion3-20060317-truetype.patch
new file mode 100644
index 000000000000..2675dfd1bbbc
--- /dev/null
+++ b/x11-wm/ion3/files/ion3-20060317-truetype.patch
@@ -0,0 +1,741 @@
+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/ion3-20060107.ebuild b/x11-wm/ion3/ion3-20060317.ebuild
index 58eebb6bfbd7..41f521f3a89f 100644
--- a/x11-wm/ion3/ion3-20060107.ebuild
+++ b/x11-wm/ion3/ion3-20060317.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ion3-20060107.ebuild,v 1.2 2006/02/23 20:35:47 corsair Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/ion3/ion3-20060317.ebuild,v 1.1 2006/03/17 22:28:57 twp Exp $
inherit eutils
@@ -12,12 +12,13 @@ SRC_URI="http://modeemi.cs.tut.fi/~tuomov/ion/dl/${MY_PN}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE="xinerama"
+IUSE="truetype xinerama"
DEPEND="
|| (
(
x11-libs/libICE
x11-libs/libXext
+ truetype? ( x11-libs/libXft )
xinerama? ( x11-libs/libXinerama )
)
virtual/x11
@@ -26,6 +27,11 @@ DEPEND="
>=dev-lang/lua-5.0.2"
S=${WORKDIR}/${MY_PN}
+src_unpack() {
+ unpack ${A}
+ use truetype && epatch ${FILESDIR}/${P}-truetype.patch
+}
+
src_compile() {
autoreconf -i
@@ -40,6 +46,7 @@ src_compile() {
econf \
--sysconfdir=/etc/X11 \
+ `use_enable truetype xft` \
`use_enable xinerama` \
${myconf} || die