summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-07-08 04:40:34 +0000
committerDana Jansens <danakj@orodu.net>2002-07-08 04:40:34 +0000
commit20bc088a998a362977233086577d74d00eea8765 (patch)
tree8d4e1676c694b95b09e83a8b1dccdaefe2952dee /src
parent858af98b904f21fe03acfd565be2e7b13d93a19c (diff)
add option to the rc file to use/not use AA for Xft fonts
Diffstat (limited to 'src')
-rw-r--r--src/Font.cc27
-rw-r--r--src/Font.hh8
-rw-r--r--src/Screen.cc13
-rw-r--r--src/Screen.hh5
4 files changed, 32 insertions, 21 deletions
diff --git a/src/Font.cc b/src/Font.cc
index 979c4c21..ac315d50 100644
--- a/src/Font.cc
+++ b/src/Font.cc
@@ -44,23 +44,23 @@ using std::endl;
#include "GCCache.hh"
#include "Color.hh"
-bool BFont::_antialias = True;
string BFont::_fallback_font = "fixed";
-
#ifdef XFT
BFont::BFont(Display *d, BScreen *screen, const string &family, int size,
- bool bold, bool italic) : _display(d),
- _screen(screen),
- _family(family),
- _simplename(False),
- _size(size),
- _bold(bold),
- _italic(italic),
- _xftfont(0),
- _font(0),
- _fontset(0),
- _fontset_extents(0) {
+ bool bold, bool italic, bool antialias) :
+ _display(d),
+ _screen(screen),
+ _family(family),
+ _simplename(False),
+ _size(size),
+ _bold(bold),
+ _italic(italic),
+ _antialias(antialias),
+ _xftfont(0),
+ _font(0),
+ _fontset(0),
+ _fontset_extents(0) {
_valid = False;
_xftfont = XftFontOpen(_display, _screen->getScreenNumber(),
@@ -90,6 +90,7 @@ BFont::BFont(Display *d, BScreen *screen, const string &xlfd) :
_display(d),
_screen(screen),
#ifdef XFT
+ _antialias(False),
_xftfont(0),
#endif // XFT
_font(0),
diff --git a/src/Font.hh b/src/Font.hh
index 07712794..9f083db9 100644
--- a/src/Font.hh
+++ b/src/Font.hh
@@ -47,13 +47,9 @@ class BFont {
* static members
*/
private:
- static bool _antialias;
static std::string _fallback_font;
public:
- inline static bool antialias(void) { return _antialias; }
- inline static void setAntialias(bool a) { _antialias = a; }
-
// the fallback is only used for X fonts, not for Xft fonts, since it is
// assumed that X fonts will be the fallback from Xft.
inline static std::string fallbackFont(void) { return _fallback_font; }
@@ -74,6 +70,8 @@ private:
bool _italic;
#ifdef XFT
+ bool _antialias;
+
XftFont *_xftfont;
bool createXftFont(void);
@@ -97,7 +95,7 @@ public:
#ifdef XFT
// loads an Xft font
BFont(Display *d, BScreen *screen, const std::string &family, int size,
- bool bold, bool italic);
+ bool bold, bool italic, bool antialias = True);
#endif
// loads a standard X font
BFont(Display *d, BScreen *screen, const std::string &xlfd);
diff --git a/src/Screen.cc b/src/Screen.cc
index b294dbf5..2ff2ce4d 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -388,6 +388,13 @@ void BScreen::saveFocusLast(bool f) {
}
+void BScreen::saveAAFonts(bool f) {
+ resource.aa_fonts = f;
+ reconfigure();
+ config->setValue(screenstr + "antialiasFonts", resource.aa_fonts);
+}
+
+
void BScreen::saveHideToolbar(bool h) {
resource.hide_toolbar = h;
if (resource.hide_toolbar)
@@ -497,6 +504,7 @@ void BScreen::save_rc(void) {
saveSloppyFocus(resource.sloppy_focus);
saveAutoRaise(resource.auto_raise);
saveImageDither(doImageDither());
+ saveAAFonts(resource.aa_fonts);
saveOpaqueMove(resource.opaque_move);
saveFullMax(resource.full_max);
saveFocusNew(resource.focus_new);
@@ -540,6 +548,9 @@ void BScreen::load_rc(void) {
if (! config->getValue(screenstr + "opaqueMove", resource.opaque_move))
resource.opaque_move = false;
+ if (! config->getValue(screenstr + "antialiasFonts", resource.aa_fonts))
+ resource.aa_fonts = true;
+
if (! config->getValue(screenstr + "hideToolbar", resource.hide_toolbar))
resource.hide_toolbar = false;
@@ -2158,7 +2169,7 @@ BFont *BScreen::readDatabaseFont(const string &rbasename,
}
BFont *b = new BFont(blackbox->getXDisplay(), this, family, i, bold,
- italic);
+ italic, resource.aa_fonts);
if (b->valid())
return b;
else
diff --git a/src/Screen.hh b/src/Screen.hh
index 6fa92c5f..4de9daa2 100644
--- a/src/Screen.hh
+++ b/src/Screen.hh
@@ -26,7 +26,6 @@
extern "C" {
#include <X11/Xlib.h>
-#include <X11/Xresource.h>
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
@@ -150,7 +149,7 @@ private:
bool sloppy_focus, auto_raise, auto_edge_balance, ordered_dither,
opaque_move, full_max, focus_new, focus_last, click_raise,
- hide_toolbar, window_to_window_snap, window_corner_snap;
+ hide_toolbar, window_to_window_snap, window_corner_snap, aa_fonts;
BColor border_color;
unsigned int workspaces;
@@ -205,6 +204,7 @@ public:
inline bool doAutoRaise(void) const { return resource.auto_raise; }
inline bool doClickRaise(void) const { return resource.click_raise; }
inline bool isScreenManaged(void) const { return managed; }
+ inline bool doAAFonts(void) const { return resource.aa_fonts; }
inline bool doImageDither(void) const { return image_control->doDither(); }
inline bool doOrderedDither(void) const { return resource.ordered_dither; }
inline bool doOpaqueMove(void) const { return resource.opaque_move; }
@@ -268,6 +268,7 @@ public:
void saveColPlacementDirection(int d);
void saveEdgeSnapThreshold(int t);
void saveImageDither(bool d);
+ void saveAAFonts(bool f);
void saveOpaqueMove(bool o);
void saveFullMax(bool f);
void saveFocusNew(bool f);