Lines 1894-1899
Link Here
|
1894 |
return NULL; |
1894 |
return NULL; |
1895 |
} |
1895 |
} |
1896 |
|
1896 |
|
|
|
1897 |
#ifdef HAVE_X11 |
1898 |
/* |
1899 |
* get_dpi_from_x_server copied from |
1900 |
* https://bugzilla.novell.com/show_bug.cgi?id=217790#c20 |
1901 |
*/ |
1902 |
#define DPI_FALLBACK 96 |
1903 |
#define DPI_LOW_REASONABLE_VALUE 50 |
1904 |
#define DPI_HIGH_REASONABLE_VALUE 500 |
1905 |
static double |
1906 |
get_dpi_from_x_server (void) |
1907 |
{ |
1908 |
GdkScreen *screen; |
1909 |
double dpi; |
1910 |
|
1911 |
screen = gdk_screen_get_default (); |
1912 |
if (screen) |
1913 |
{ |
1914 |
int width_pixels, width_mm; |
1915 |
int height_pixels, height_mm; |
1916 |
double width_dpi, height_dpi; |
1917 |
|
1918 |
width_pixels = gdk_screen_get_width (screen); |
1919 |
width_mm = gdk_screen_get_width_mm (screen); |
1920 |
|
1921 |
height_pixels = gdk_screen_get_height (screen); |
1922 |
height_mm = gdk_screen_get_height_mm (screen); |
1923 |
|
1924 |
width_dpi = width_pixels / (width_mm / 25.4); |
1925 |
height_dpi = height_pixels / (height_mm / 25.4); |
1926 |
|
1927 |
if (width_dpi < DPI_LOW_REASONABLE_VALUE || width_dpi > DPI_HIGH_REASONABLE_VALUE |
1928 |
|| height_dpi < DPI_LOW_REASONABLE_VALUE || height_dpi > DPI_HIGH_REASONABLE_VALUE) |
1929 |
dpi = DPI_FALLBACK; |
1930 |
else |
1931 |
dpi = (width_dpi + height_dpi) / 2.0; |
1932 |
} |
1933 |
else |
1934 |
{ |
1935 |
/* Huh!? No screen? */ |
1936 |
|
1937 |
dpi = DPI_FALLBACK; |
1938 |
} |
1939 |
|
1940 |
return dpi; |
1941 |
} |
1942 |
#endif |
1943 |
|
1897 |
static gboolean |
1944 |
static gboolean |
1898 |
crtc_assignment_apply (CrtcAssignment *assign, guint32 timestamp, GError **error) |
1945 |
crtc_assignment_apply (CrtcAssignment *assign, guint32 timestamp, GError **error) |
1899 |
{ |
1946 |
{ |
Lines 1970-1977
Link Here
|
1970 |
* |
2017 |
* |
1971 |
* Firefox and Evince apparently believe what X tells them. |
2018 |
* Firefox and Evince apparently believe what X tells them. |
1972 |
*/ |
2019 |
*/ |
1973 |
width_mm = (width / 96.0) * 25.4 + 0.5; |
2020 |
double dpi = 96.0; |
1974 |
height_mm = (height / 96.0) * 25.4 + 0.5; |
2021 |
#ifdef HAVE_X11 |
|
|
2022 |
dpi = get_dpi_from_x_server(); |
2023 |
#endif |
2024 |
width_mm = (width / dpi) * 25.4 + 0.5; |
2025 |
height_mm = (height / dpi) * 25.4 + 0.5; |
1975 |
|
2026 |
|
1976 |
if (success) |
2027 |
if (success) |
1977 |
{ |
2028 |
{ |