From 41e7cff9b8620864e1c40df61d0125fb98b44468 Mon Sep 17 00:00:00 2001 From: Jorge Saldivar Date: Fri, 18 Jun 2010 17:56:56 +0000 Subject: Add support for Xft/DPI xsetting registry item --- 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 + * Jorge Saldivar */ #include @@ -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) -- cgit v0.9.1