diff options
author | Tom William Payne <twp@gentoo.org> | 2006-03-17 22:28:57 +0000 |
---|---|---|
committer | Tom William Payne <twp@gentoo.org> | 2006-03-17 22:28:57 +0000 |
commit | 1385f59ed5752b96e25a9a094de7d1f32700820c (patch) | |
tree | f294808bd768fc16e1180399914787a2821b0adb /x11-wm | |
parent | Stable on x86 wrt bug #126321. (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | x11-wm/ion3/Manifest | 15 | ||||
-rw-r--r-- | x11-wm/ion3/files/digest-ion3-20060107 | 1 | ||||
-rw-r--r-- | x11-wm/ion3/files/digest-ion3-20060317 | 3 | ||||
-rw-r--r-- | x11-wm/ion3/files/ion3-20060317-truetype.patch | 741 | ||||
-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 |