1 diff -Nuard control-center-2.4.0.orig/capplets/font/font-properties.glade control-center-2.4.0/capplets/font/font-properties.glade
2 --- control-center-2.4.0.orig/capplets/font/font-properties.glade 2003-08-04 17:33:22.000000000 +0200
3 +++ control-center-2.4.0/capplets/font/font-properties.glade 2003-11-14 21:01:26.000000000 +0100
5 <property name="fill">False</property>
10 + <widget class="GtkCheckButton" id="dpi_calculate">
11 + <property name="visible">True</property>
12 + <property name="can_focus">True</property>
13 + <property name="label" translatable="yes">Calculate DPI</property>
14 + <property name="use_underline">True</property>
15 + <property name="relief">GTK_RELIEF_NORMAL</property>
16 + <property name="active">False</property>
17 + <property name="inconsistent">False</property>
18 + <property name="draw_indicator">True</property>
21 + <property name="padding">0</property>
22 + <property name="expand">False</property>
23 + <property name="fill">False</property>
29 diff -Nuard control-center-2.4.0.orig/capplets/font/main.c control-center-2.4.0/capplets/font/main.c
30 --- control-center-2.4.0.orig/capplets/font/main.c 2003-08-02 18:02:47.000000000 +0200
31 +++ control-center-2.4.0/capplets/font/main.c 2003-11-14 21:01:26.000000000 +0100
33 #define FONT_HINTING_KEY FONT_RENDER_DIR "/hinting"
34 #define FONT_RGBA_ORDER_KEY FONT_RENDER_DIR "/rgba_order"
35 #define FONT_DPI_KEY FONT_RENDER_DIR "/dpi"
36 +#define FONT_CALCULATE_DPI_KEY FONT_RENDER_DIR "/calculate_dpi"
38 #endif /* HAVE_XFT2 */
39 static gboolean in_change = FALSE;
44 +dpi_toggle_changed (GtkToggleButton *toggle,
47 + GConfClient *client = gconf_client_get_default ();
48 + GdkScreen *screen = gdk_screen_get_default ();
49 + gboolean active = gtk_toggle_button_get_active (toggle);
50 + int width_mm, width_px, dpi;
53 + gconf_client_set_bool (client, FONT_CALCULATE_DPI_KEY, active, NULL);
56 + gtk_widget_set_sensitive( GTK_WIDGET(spinner) , FALSE);
58 + gtk_widget_set_sensitive( GTK_WIDGET(spinner) , TRUE);
60 + width_mm = gdk_screen_get_width_mm(screen);
61 + width_px = gdk_screen_get_width(screen);
63 + xres = ((((double)width_px) * 25.4) / ((double)width_mm));
64 + dpi = (int)(xres + 0.5);
66 + gtk_spin_button_set_value ( GTK_SPIN_BUTTON (spinner), dpi);
71 dpi_value_changed (GtkSpinButton *spinner,
75 if (!details_dialog) {
76 GConfClient *client = gconf_client_get_default ();
77 GladeXML *dialog = glade_xml_new (GLADEDIR "/font-properties.glade", "render_details", NULL);
78 - GtkWidget *dpi_spinner;
79 + GtkWidget *dpi_spinner, *dpi_toggle;
82 details_dialog = WID ("render_details");
84 g_signal_connect (dpi_spinner, "value_changed",
85 G_CALLBACK (dpi_value_changed), client);
87 + dpi_toggle = WID ("dpi_calculate");
88 + g_signal_connect (GTK_TOGGLE_BUTTON (dpi_toggle), "toggled",
89 + G_CALLBACK (dpi_toggle_changed), dpi_spinner);
91 + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON (dpi_toggle), gconf_client_get_bool (client, FONT_CALCULATE_DPI_KEY, NULL));
93 gconf_client_notify_add (client, FONT_DPI_KEY,
95 dpi_spinner, NULL, NULL);
98 setup_font_sample (WID ("antialias_none_sample"), ANTIALIAS_NONE, HINT_FULL);
99 setup_font_sample (WID ("antialias_grayscale_sample"), ANTIALIAS_GRAYSCALE, HINT_FULL);
100 diff -Nuard control-center-2.4.0.orig/gnome-settings-daemon/gnome-settings-xsettings.c control-center-2.4.0/gnome-settings-daemon/gnome-settings-xsettings.c
101 --- control-center-2.4.0.orig/gnome-settings-daemon/gnome-settings-xsettings.c 2003-07-31 20:25:42.000000000 +0200
102 +++ control-center-2.4.0/gnome-settings-daemon/gnome-settings-xsettings.c 2003-11-14 21:34:46.000000000 +0100
104 #define FONT_HINTING_KEY FONT_RENDER_DIR "/hinting"
105 #define FONT_RGBA_ORDER_KEY FONT_RENDER_DIR "/rgba_order"
106 #define FONT_DPI_KEY FONT_RENDER_DIR "/dpi"
107 +#define FONT_CALCULATE_DPI_KEY FONT_RENDER_DIR "/calculate_dpi"
108 #endif /* HAVE_XFT2 */
110 typedef struct _TranslationEntry TranslationEntry;
111 @@ -268,10 +269,11 @@
112 gnome_xft_settings_get (GConfClient *client,
113 GnomeXftSettings *settings)
115 - char *antialiasing = gconf_client_get_string (client, FONT_ANTIALIASING_KEY, NULL);
116 - char *hinting = gconf_client_get_string (client, FONT_HINTING_KEY, NULL);
117 - char *rgba_order = gconf_client_get_string (client, FONT_RGBA_ORDER_KEY, NULL);
118 - double dpi = gconf_client_get_float (client, FONT_DPI_KEY, NULL);
119 + gchar *antialiasing = gconf_client_get_string (client, FONT_ANTIALIASING_KEY, NULL);
120 + gchar *hinting = gconf_client_get_string (client, FONT_HINTING_KEY, NULL);
121 + gchar *rgba_order = gconf_client_get_string (client, FONT_RGBA_ORDER_KEY, NULL);
122 + gdouble dpi = gconf_client_get_float (client, FONT_DPI_KEY, NULL);
123 + gboolean calculate_dpi = gconf_client_get_bool (client, FONT_CALCULATE_DPI_KEY ,NULL);
125 settings->antialias = TRUE;
126 settings->hinting = TRUE;
127 @@ -279,12 +281,28 @@
129 settings->rgba = "rgb";
131 - if ((int)(1024 * dpi + 0.5) > 0)
132 - settings->dpi = (int)(1024 * dpi + 0.5);
133 + if (calculate_dpi == TRUE)
136 + gint width_mm, width_px;
137 + GdkScreen *screen = gdk_screen_get_default();
139 + width_mm = gdk_screen_get_width_mm(screen);
140 + width_px = gdk_screen_get_width(screen);
142 + xres = ((((gdouble)width_px) * 25.4) / ((gdouble)width_mm));
145 + gconf_client_set_float (client, FONT_DPI_KEY, (gint)(xres + 0.5) ,NULL);
148 + if ((gint)(1024 * dpi + 0.5) > 0)
149 + settings->dpi = (gint)(1024 * dpi + 0.5);
156 gboolean found = FALSE;
158 for (i = 0; i < G_N_ELEMENTS (rgba_types) && !found; i++)
159 diff -Nuard control-center-2.4.0.orig/schemas/desktop_gnome_font_rendering.schemas control-center-2.4.0/schemas/desktop_gnome_font_rendering.schemas
160 --- control-center-2.4.0.orig/schemas/desktop_gnome_font_rendering.schemas 2003-09-08 16:58:39.000000000 +0200
161 +++ control-center-2.4.0/schemas/desktop_gnome_font_rendering.schemas 2003-11-14 21:01:26.000000000 +0100
163 <?xml version="1.0"?>
167 + <key>/schemas/desktop/gnome/font_rendering/calculate_dpi</key>
168 + <applyto>/desktop/gnome/font_rendering/calculate_dpi</applyto>
169 + <owner>gnome</owner>
171 + <default>false</default>
173 + <short>Automatic DPI calculation</short>
174 + <long>Automaticac DPI calculation</long>
177 + <short>Automatyczne obliczanie DPI</short>
178 + <long>Automatyczne obliczanie DPI</long>
182 <key>/schemas/desktop/gnome/font_rendering/dpi</key>
183 <applyto>/desktop/gnome/font_rendering/dpi</applyto>