From 20bc088a998a362977233086577d74d00eea8765 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 8 Jul 2002 04:40:34 +0000 Subject: [PATCH] add option to the rc file to use/not use AA for Xft fonts --- src/Font.cc | 27 ++++++++++++++------------- src/Font.hh | 8 +++----- src/Screen.cc | 13 ++++++++++++- src/Screen.hh | 5 +++-- 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 -#include #ifdef TIME_WITH_SYS_TIME # include @@ -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); -- 2.45.2