Use Xft automatically if available

This commit is contained in:
Spencer Janssen
2007-11-16 12:42:11 +00:00
parent 65299e7d0c
commit 0494d0d5e5
2 changed files with 12 additions and 5 deletions

View File

@@ -85,7 +85,7 @@ initXMF s =
do
dpy <- asks display
xftdraw <- io $ xftFontOpen dpy (defaultScreenOfDisplay dpy) (drop (length xftPrefix) s)
return (Right xftdraw)
return (Xft xftdraw)
else
#endif
(initCoreFont s >>= (return . Core))
@@ -104,7 +104,7 @@ releaseXMF (Xft xftfont) = do
textWidthXMF :: Display -> XMonadFont -> String -> IO Int
textWidthXMF _ (Core fs) s = return $ fi $ textWidth fs s
#ifdef XFT
textWidthXMF dpy (Right xftdraw) s = do
textWidthXMF dpy (Xft xftdraw) s = do
gi <- xftTextExtents dpy xftdraw s
return $ xglyphinfo_width gi
#endif
@@ -112,7 +112,7 @@ textWidthXMF dpy (Right xftdraw) s = do
textExtentsXMF :: Display -> XMonadFont -> String -> IO (FontDirection,Int32,Int32,CharStruct)
textExtentsXMF _ (Core fs) s = return $ textExtents fs s
#ifdef XFT
textExtentsXMF _ (Right xftfont) _ = do
textExtentsXMF _ (Xft xftfont) _ = do
ascent <- xftfont_ascent xftfont
descent <- xftfont_descent xftfont
return (error "Font direction touched", fi ascent, fi descent, error "Font overall size touched")
@@ -146,7 +146,7 @@ printStringXMF d p (Core fs) gc fc bc x y s = do
io $ drawImageString d p gc x y s
#ifdef XFT
printStringXMF dpy drw (Right font) _ fc _ x y s = do
printStringXMF dpy drw (Xft font) _ fc _ x y s = do
let screen = defaultScreenOfDisplay dpy;
colormap = defaultColormapOfScreen screen;
visual = defaultVisualOfScreen screen;

View File

@@ -20,13 +20,20 @@ cabal-version: >= 1.2
flag small_base
description: Choose the new smaller, split-up base package.
flag use_xft
description: Use Xft to render text
library
if flag(small_base)
build-depends: base >= 3, containers, directory, process, random
else
build-depends: base < 3
build-depends: mtl, unix, X11==1.3.0.20071111, xmonad==0.4, utf8-string, X11-xft
if flag(use_xft)
build-depends: X11-xft
ghc-options: -DXFT
build-depends: mtl, unix, X11==1.3.0.20071111, xmonad==0.4, utf8-string
ghc-options: -Wall -Werror
exposed-modules: Documentation
XMonad.Actions.Commands