diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 54b579eee..e21beb001 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -135,6 +135,7 @@ e_int_config_display.h \ e_int_config_desklock.h \ e_int_config_exebuf.h \ e_int_config_cfgdialogs.h \ +e_int_config_hinting.h \ e_deskpreview.h \ e_exebuf.h \ e_desklock.h \ @@ -262,6 +263,7 @@ e_int_config_display.c \ e_int_config_desklock.c \ e_int_config_exebuf.c \ e_int_config_cfgdialogs.c \ +e_int_config_hinting.c \ e_deskpreview.c \ e_exebuf.c \ e_desklock.c \ diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 3861314cd..fc2ed765e 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -458,6 +458,7 @@ e_config_init(void) E_CONFIG_LIST(D, T, gadcons, _e_config_gadcon_edd); E_CONFIG_LIST(D, T, shelves, _e_config_shelf_edd); E_CONFIG_VAL(D, T, desklock_personal_passwd, STR); + E_CONFIG_VAL(D, T, font_hinting, INT); e_config = e_config_domain_load("e", _e_config_edd); if (e_config) @@ -610,6 +611,7 @@ e_config_init(void) e_config->cfgdlg_default_mode = 0; e_config->gadcons = NULL; e_config->desklock_personal_passwd = NULL; + e_config->font_hinting = 0; /* FIXME: fill up default gadcons! */ { @@ -1670,6 +1672,15 @@ e_config_init(void) E_CONFIG_LIMIT(e_config->use_app_icon, 0, 1); E_CONFIG_LIMIT(e_config->cfgdlg_auto_apply, 0, 1); E_CONFIG_LIMIT(e_config->cfgdlg_default_mode, 0, 1); + E_CONFIG_LIMIT(e_config->font_hinting, 0, 2); + + if (e_config->font_hinting == 0) + evas_imaging_font_hinting_set(EVAS_FONT_HINTING_BYTECODE); + else if (e_config->font_hinting == 1) + evas_imaging_font_hinting_set(EVAS_FONT_HINTING_AUTO); + else if (e_config->font_hinting == 2) + evas_imaging_font_hinting_set(EVAS_FONT_HINTING_NONE); + return 1; } diff --git a/src/bin/e_config.h b/src/bin/e_config.h index a67ac8d75..35a41b881 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -211,6 +211,7 @@ struct _E_Config Evas_List *gadcons; Evas_List *shelves; char *desklock_personal_passwd; // GUI + int font_hinting; // GUI }; struct _E_Config_Module diff --git a/src/bin/e_configure.c b/src/bin/e_configure.c index 2e671df07..9fdbb76e2 100644 --- a/src/bin/e_configure.c +++ b/src/bin/e_configure.c @@ -80,6 +80,7 @@ e_configure_show(E_Container *con) e_configure_standard_item_add(eco, "enlightenment/windows", _("Window List Settings"), e_int_config_winlist); e_configure_standard_item_add(eco, "enlightenment/windows", _("Window Display Settings"), e_int_config_window_display); e_configure_standard_item_add(eco, "enlightenment/windows", _("Window Manipulation Settings"), e_int_config_window_manipulation); + e_configure_standard_item_add(eco, "enlightenment/e", _("Font Display Hinting"), e_int_config_hinting); /* FIXME: we should have a way for modules to hook in here and add their * own entries diff --git a/src/bin/e_includes.h b/src/bin/e_includes.h index 8a5e295f5..52d809435 100644 --- a/src/bin/e_includes.h +++ b/src/bin/e_includes.h @@ -114,6 +114,7 @@ #include "e_int_config_desklock.h" #include "e_int_config_exebuf.h" #include "e_int_config_cfgdialogs.h" +#include "e_int_config_hinting.h" #include "e_deskpreview.h" #include "e_exebuf.h" #include "e_desklock.h"