- Removed "antialias"-option completly, to enable/disable "antialias"
use either <fontname>:antialias=<bool> in the style or use
Xft.antialias: <bool> in your .Xdefaults
- Added new styleresources:
*.font.effect: <halo|shadow>
*.font.shadow.x : <int> - shadow x offset
*.font.shadow.y : <int> - shadow y offset
*.font.shadow.color : <color> - color of shadow
*.font.halo.color : <color> - color of halo
- Removed 'shadow' and 'halo' options from fontdefinitions:
!! Style authors have to update their styles !!
- Simplified XmbFontImp to not try all possible fonts to match locale
- Style authors may specify multiple fonts:
<font1>|<font2>|<font3>
if loading of font1 fails, fluxbox probes <font2>, etc. The last font is
"fixed". Hints for style authors:
- if xft tries to load a font it will _ALWAYS_ return a valid font,
it doesnt have to look like the one you want to have, read more
about it: http://fontconfig.org/fontconfig-user.html
- export XFT_DEBUG=1 before running fluxbox helps to see
which fonts are picked.
eg:
*.font: Verdana,Arial-12:antialias=true|-artwiz-snap-*-
if fluxbox is compiled with xft this will NEVER try to
load "-artwiz-snap-*-" since xft gives for sure a font,
most likely Verdana or Arial but noone knows. So, if
fluxbox has no xft support the first fontpattern fails
and fluxbox tries the next one, which might be successful.
if everything fails, it will use "fixed"
- Added caching of fonts, fonts are only loaded once.
- Fixed#1090902 (slow utf8 start)
fluxbox in utf8-locales:
if no fontset is found up to this point its because of
a) no such font
b) not supported locale
if we try our best and enhance the basename-list and add some
more generic patterns the xserver will give us a valid
fontset .. which is good coz we have something to work with
but which is BAD coz we return a valid fontset as if we
have found the font the user wants .. so, every fallback
in higher level code will fail coz we find a valid fontset by any
meaning here. if no fontset can be found, the "fixed"-fontset should
be there already.
if the xkb-extension is enabled and the user switches between his/her
keyboardlayouts fluxbox's keybhandling doesn't work well anymore because
xkeyevent.state contains also xkb-related flags and thus we have to handle
that with caution.
KeyUtils now contain 'isolateModifierMask()' to really work only on the
modifiers. why not as part of cleanMods() ? because the XLookupString return
false results, eg TextBox's would only print chars from the first
keyboardlayout.
"carrier" (maybe a temporarly name?) ... carriers dont need background-updates
.. ever.
this leads to a big performance"boost" over the last commits. before we
updated also the windows which are the hosts for the apps (m_window and
m_clientarea in FbWinFrame) -> bad idea.
called too often:
m_root_menu is locked for the current screen when loading the
style for the current screen, but not for the screens already
initialized and thus its executed when called thru Theme::reconfigure();
now only the themes on the same screen are affected by the load-routine.
only when using "imlib_load_image_with_error_return" as the loading
function imlib2 seems to avoid trouble when an image with <filename>
doesnt exist. all other loadroutines lead to heavy problems when
fluxbox shuts down and tries to restart (memleak(?), distorted xressources
etc)
i ll analyze this further. another open issue with imlib2 is that it
doesnt work when xserver/fluxbox is running in dualscreen-mode (not
xinerama), no valid pixmaps are visible on the second head. dunno why
(yet).
besides xpm. to get imlib2 support in fluxbox one has to
./configure --enable-imblib2
default is disabled. a fluxbox-binary that supports imlib2 will have
IMLIB2 in "fluxbox -info"-output
explanation to the changed files:
* xft.m4 -> acinclude.m4 + added ac_path_generic.m4
(from http://ac-archive.sourceforge.net/Miscellaneous/ac_path_generic.html)
* configure.in, Makefile.am, src/FbTk/Makefile.am changed to handle
imlib2-support
* Font.cc/hh Image.cc/hh App.cc fluxbox.cc consistent way of init for global
stuff for fonts and imagehandlers.
* rest of changes just add the imlib2-code, pretty straightforward
file and directory - helproutines.
* created the FileUtil-namespace which contains file-related functions, moved
those functions out of Directory - code
* changes to the rest of the files to follow those changes
FbTk::Menu::update(Subject*) and FbTk::Menu::update(int index)
to avoid this, we rename FbTk::Menu::update(int index)
-> FbTk::Menu::updateMenu(int index)
this is mostly cosmetic, but if it makes the life of a compiler happy, well ..
be happy icc :)