Oops, this was supposed to go also to the list. --------- Mensaje reenviado -------- From: Jorge (jasg) Saldivar <jsaldi...@paraguayeduca.org> To: sayami...@laptop.org Cc: ber...@codewiz.org, Jorge Saldivar <jsaldi...@paraguayeduca.org> Subject: [PATCH] Add dpi font support Date: Fri, 18 Jun 2010 12:51:06 -0400
From: Jorge Saldivar <jsaldi...@paraguayeduca.org> --- src/sugar-settings-manager.c | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) diff --git a/src/sugar-settings-manager.c b/src/sugar-settings-manager.c index 1180334..52b8b89 100644 --- a/src/sugar-settings-manager.c +++ b/src/sugar-settings-manager.c @@ -21,6 +21,7 @@ * * Authors: Owen Taylor, Red Hat, Inc. * Sayamindu Dasgupta <sayami...@laptop.org> + * Jorge Saldivar <jorgesaldi...@gmail.com> */ #include <stdlib.h> @@ -36,9 +37,11 @@ #define SUGAR_FONT_DIR "/desktop/sugar/font" #define SUGAR_FONT_FACE_KEY "/desktop/sugar/font/default_face" #define SUGAR_FONT_SIZE_KEY "/desktop/sugar/font/default_size" +#define SUGAR_FONT_DPI_KEY "/desktop/sugar/font/dpi" /* See http://freedesktop.org/wiki/Specifications/XSettingsRegistry */ #define XSETTINGS_REGISTRY_GTK_FONT_NAME "Gtk/FontName" +#define XSETTINGS_REGISTRY_XFT_DPI "Xft/DPI" XSettingsManager *manager; GConfClient *client; @@ -77,6 +80,19 @@ void update_font() xsettings_manager_notify(manager); } +void update_font_dpi() +{ + gint font_dpi; + + font_dpi = gconf_client_get_int(client, SUGAR_FONT_DPI_KEY, NULL); + if (!font_dpi) + return; + + xsettings_manager_set_int(manager, XSETTINGS_REGISTRY_XFT_DPI, + font_dpi); + xsettings_manager_notify(manager); +} + void font_face_changed_callback(GConfClient * client, guint cnxn_id, @@ -109,6 +125,21 @@ font_size_changed_callback(GConfClient * client, } } +void +font_dpi_changed_callback(GConfClient * client, + guint cnxn_id, + GConfEntry * entry, gpointer user_data) +{ + if (entry->value == NULL) { + return; + } else { + if (entry->value->type == GCONF_VALUE_INT) { + update_font_dpi(); + } else { + return; + } + } +} void setup_font() { @@ -123,8 +154,12 @@ void setup_font() gconf_client_notify_add(client, SUGAR_FONT_SIZE_KEY, (GConfClientNotifyFunc) font_size_changed_callback, NULL, NULL, NULL); + gconf_client_notify_add(client, SUGAR_FONT_DPI_KEY, + (GConfClientNotifyFunc) + font_dpi_changed_callback, NULL, NULL, NULL); update_font(); + update_font_dpi(); } int main(int argc, char **argv) -- 1.7.0.4 -- // Bernie Innocenti - http://codewiz.org/ \X/ Sugar Labs - http://sugarlabs.org/ _______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel