46 lines
2.1 KiB
Diff
46 lines
2.1 KiB
Diff
diff -up emacs-23.1/src/xterm.c.fontdpi emacs-23.1/src/xterm.c
|
|
--- emacs-23.1/src/xterm.c.fontdpi 2010-01-04 09:11:45.000000000 +0100
|
|
+++ emacs-23.1/src/xterm.c 2010-01-04 11:50:19.627777180 +0100
|
|
@@ -10380,17 +10380,31 @@ x_term_init (display_name, xrm_option, r
|
|
dpyinfo->visual, AllocNone);
|
|
|
|
{
|
|
- int screen_number = XScreenNumberOfScreen (dpyinfo->screen);
|
|
- double pixels = DisplayHeight (dpyinfo->display, screen_number);
|
|
- double mm = DisplayHeightMM (dpyinfo->display, screen_number);
|
|
- /* Mac OS X 10.3's Xserver sometimes reports 0.0mm. */
|
|
- dpyinfo->resy = (mm < 1) ? 100 : pixels * 25.4 / mm;
|
|
- pixels = DisplayWidth (dpyinfo->display, screen_number);
|
|
- mm = DisplayWidthMM (dpyinfo->display, screen_number);
|
|
- /* Mac OS X 10.3's Xserver sometimes reports 0.0mm. */
|
|
- dpyinfo->resx = (mm < 1) ? 100 : pixels * 25.4 / mm;
|
|
+ /* If we are using Xft, check dpi value in X resources.
|
|
+ It is better we use it as well, since Xft will use it, as will all
|
|
+ Gnome applications. If our real DPI is smaller or larger than the
|
|
+ one Xft uses, our font will look smaller or larger than other
|
|
+ for other applications, even if it is the same font name (monospace-10
|
|
+ for example). */
|
|
+ char *v = XGetDefault (dpyinfo->display, "Xft", "dpi");
|
|
+ double d;
|
|
+ if (v != NULL && sscanf (v, "%lf", &d) == 1)
|
|
+ dpyinfo->resy = dpyinfo->resx = d;
|
|
}
|
|
|
|
+ if (dpyinfo->resy < 1)
|
|
+ {
|
|
+ int screen_number = XScreenNumberOfScreen (dpyinfo->screen);
|
|
+ double pixels = DisplayHeight (dpyinfo->display, screen_number);
|
|
+ double mm = DisplayHeightMM (dpyinfo->display, screen_number);
|
|
+ /* Mac OS X 10.3's Xserver sometimes reports 0.0mm. */
|
|
+ dpyinfo->resy = (mm < 1) ? 100 : pixels * 25.4 / mm;
|
|
+ pixels = DisplayWidth (dpyinfo->display, screen_number);
|
|
+ mm = DisplayWidthMM (dpyinfo->display, screen_number);
|
|
+ /* Mac OS X 10.3's Xserver sometimes reports 0.0mm. */
|
|
+ dpyinfo->resx = (mm < 1) ? 100 : pixels * 25.4 / mm;
|
|
+ }
|
|
+
|
|
dpyinfo->Xatom_wm_protocols
|
|
= XInternAtom (dpyinfo->display, "WM_PROTOCOLS", False);
|
|
dpyinfo->Xatom_wm_take_focus
|
|
|