summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Betts <sabetts@gmail.com>2009-04-30 12:50:26 -0700
committerShawn Betts <sabetts@gmail.com>2009-04-30 12:52:05 -0700
commit3caa93e319499e77f63e25b2ef4a15c276815ca8 (patch)
tree6c6967f62a895ed3098778e3356f2161cebfc217
parentd5e70ba5716dd5b807f7550f9924711365116a8b (diff)
downloadratpoison-3caa93e319499e77f63e25b2ef4a15c276815ca8.zip
fix 'set fgcolor' for xft. Change screen's ft_font and color slots to xft_font and xft_color.
-rw-r--r--src/actions.c11
-rw-r--r--src/data.h4
-rw-r--r--src/globals.c8
-rw-r--r--src/globals.h4
-rw-r--r--src/main.c6
-rw-r--r--src/screen.c15
6 files changed, 27 insertions, 21 deletions
diff --git a/src/actions.c b/src/actions.c
index da14648..0f093a6 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -3707,8 +3707,8 @@ set_font (struct cmdarg **args)
if (font == NULL)
return cmdret_new (RET_FAILURE, "deffont: unknown font");
- XftFontClose (dpy, s->ft_font);
- s->ft_font = font;
+ XftFontClose (dpy, s->xft_font);
+ s->xft_font = font;
#else
XFontSet font;
@@ -3993,6 +3993,13 @@ set_fgcolor (struct cmdarg **args)
XSetWindowBorder (dpy, screens[i].frame_window, color.pixel);
XSetWindowBorder (dpy, screens[i].help_window, color.pixel);
+#ifdef USE_XFT_FONT
+ if (!XftColorAllocName (dpy, DefaultVisual (dpy, screens[i].screen_num),
+ DefaultColormap (dpy, screens[i].screen_num),
+ ARG_STRING(0), &screens[i].xft_color))
+ return cmdret_new (RET_FAILURE, "deffgcolor: unknown color");
+#endif
+
free (defaults.fgcolor_string);
defaults.fgcolor_string = xstrdup (ARG_STRING(0));
}
diff --git a/src/data.h b/src/data.h
index a7785de..947b571 100644
--- a/src/data.h
+++ b/src/data.h
@@ -177,8 +177,8 @@ struct rp_screen
int current_frame;
#ifdef USE_XFT_FONT
- XftFont *ft_font;
- XftColor color;
+ XftFont *xft_font;
+ XftColor xft_color;
#endif
};
diff --git a/src/globals.c b/src/globals.c
index 9638996..f21195f 100644
--- a/src/globals.c
+++ b/src/globals.c
@@ -278,14 +278,14 @@ rp_draw_string (rp_screen *s, Drawable d, GC gc, int x, int y, char *string, int
length = strlen (string);
#ifdef USE_XFT_FONT
- if (s->ft_font)
+ if (s->xft_font)
{
XftDraw *draw;
draw = XftDrawCreate (dpy, d, DefaultVisual (dpy, s->screen_num),
DefaultColormap (dpy, s->screen_num));
if (draw)
{
- XftDrawString8 (draw, &s->color, s->ft_font, x, y, (FcChar8*) string, length);
+ XftDrawString8 (draw, &s->xft_color, s->xft_font, x, y, (FcChar8*) string, length);
XftDrawDestroy (draw);
}
else
@@ -303,10 +303,10 @@ rp_text_width (rp_screen *s, XFontSet font, char *string, int count)
count = strlen (string);
#ifdef USE_XFT_FONT
- if (s->ft_font)
+ if (s->xft_font)
{
XGlyphInfo extents;
- XftTextExtents8 (dpy, s->ft_font, (FcChar8*) string, count, &extents);
+ XftTextExtents8 (dpy, s->xft_font, (FcChar8*) string, count, &extents);
return extents.xOff;
}
else
diff --git a/src/globals.h b/src/globals.h
index 881d3e4..452cf0d 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -30,8 +30,8 @@
#ifdef USE_XFT_FONT
#include <X11/Xft/Xft.h>
-#define FONT_HEIGHT(s) ((s)->ft_font->ascent + (s)->ft_font->descent)
-#define FONT_ASCENT(s) ((s)->ft_font->ascent)
+#define FONT_HEIGHT(s) ((s)->xft_font->ascent + (s)->xft_font->descent)
+#define FONT_ASCENT(s) ((s)->xft_font->ascent)
#else
diff --git a/src/main.c b/src/main.c
index a90ccf2..3c05152 100644
--- a/src/main.c
+++ b/src/main.c
@@ -774,11 +774,11 @@ free_screen (rp_screen *s)
XDestroyWindow (dpy, s->help_window);
#ifdef USE_XFT_FONT
- if (s->ft_font)
+ if (s->xft_font)
{
XftColorFree (dpy, DefaultVisual (dpy, s->screen_num),
- DefaultColormap (dpy, s->screen_num), &s->color);
- XftFontClose (dpy, s->ft_font);
+ DefaultColormap (dpy, s->screen_num), &s->xft_color);
+ XftFontClose (dpy, s->xft_font);
}
#endif
diff --git a/src/screen.c b/src/screen.c
index b3b9840..ed7376a 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -344,22 +344,21 @@ init_screen (rp_screen *s, int screen_num)
#ifdef USE_XFT_FONT
{
- XRenderColor rc = {0, 0, 0, 0xFFFF};
-
- if (!XftColorAllocValue (dpy, DefaultVisual (dpy, screen_num),
- DefaultColormap (dpy, screen_num), &rc, &s->color))
+ if (!XftColorAllocName (dpy, DefaultVisual (dpy, screen_num),
+ DefaultColormap (dpy, screen_num),
+ defaults.fgcolor_string, &s->xft_color))
{
PRINT_ERROR(("Failed to allocate font color\n"));
- s->ft_font = NULL;
+ s->xft_font = NULL;
}
else
{
- s->ft_font = XftFontOpenName (dpy, screen_num, DEFAULT_XFT_FONT);
- if (!s->ft_font)
+ s->xft_font = XftFontOpenName (dpy, screen_num, DEFAULT_XFT_FONT);
+ if (!s->xft_font)
{
PRINT_ERROR(("Failed to open font\n"));
XftColorFree (dpy, DefaultVisual (dpy, screen_num),
- DefaultColormap (dpy, screen_num), &s->color);
+ DefaultColormap (dpy, screen_num), &s->xft_color);
}
}
}