=== modified file 'Makefile.am' --- Makefile.am 2012-09-17 13:31:13 +0000 +++ Makefile.am 2014-11-28 09:12:39 +0000 @@ -1,6 +1,6 @@ # -*- Mode: Automake; indent-tabs-mode: t; tab-width: 4 -*- -SUBDIRS = data po src tests +SUBDIRS = data po vapi src tests EXTRA_DIST = \ autogen.sh \ === modified file 'configure.ac' --- configure.ac 2014-04-30 15:33:19 +0000 +++ configure.ac 2014-11-28 09:33:49 +0000 @@ -29,6 +29,7 @@ libcanberra pixman-1 x11 + xrandr ]) AC_DEFINE_UNQUOTED([INDICATOR_FILE_DIR], ["${prefix}/share/unity/indicators"], [Indicator files are searched for in this directory]) @@ -59,6 +60,7 @@ Makefile data/Makefile po/Makefile.in +vapi/Makefile src/Makefile tests/Makefile ]) === modified file 'debian/changelog' --- debian/changelog 2014-04-30 15:33:19 +0000 +++ debian/changelog 2014-12-01 08:58:30 +0000 @@ -1,3 +1,9 @@ +unity-greeter (14.04.10-0ubuntu1.1) trusty; urgency=medium + + * Support HiDPI display. + + -- Shih-Yuan Lee (FourDollars) Thu, 20 Nov 2014 17:45:04 +0800 + unity-greeter (14.04.10-0ubuntu1) trusty; urgency=medium * New upstream release: === modified file 'debian/control' --- debian/control 2014-04-08 07:57:42 +0000 +++ debian/control 2014-11-28 09:39:31 +0000 @@ -18,6 +18,7 @@ libido3-0.1-dev (>= 13.10.0), liblightdm-gobject-1-dev (>= 1.4.0), libpixman-1-dev, + libxrandr-dev, valac (>= 0.20.0), xvfb, Homepage: https://launchpad.net/unity-greeter === modified file 'src/Makefile.am' --- src/Makefile.am 2014-04-08 07:57:42 +0000 +++ src/Makefile.am 2014-11-28 09:20:26 +0000 @@ -2,6 +2,7 @@ sbin_PROGRAMS = unity-greeter noinst_PROGRAMS = logo-generator +noinst_HEADERS = hidpi_check.h unity_greeter_SOURCES = \ config.vapi \ @@ -33,7 +34,8 @@ toggle-box.vala \ unity-greeter.vala \ user-list.vala \ - user-prompt-box.vala + user-prompt-box.vala \ + hidpi_check.c logo_generator_SOURCES = logo-generator.vala @@ -51,6 +53,8 @@ logo_generator_CFLAGS = $(unity_greeter_CFLAGS) unity_greeter_VALAFLAGS = \ + --vapidir=$(top_srcdir)/vapi \ + --pkg hidpi-check \ --pkg posix \ --pkg gtk+-3.0 \ --pkg gdk-x11-3.0 \ === added file 'src/hidpi_check.c' --- src/hidpi_check.c 1970-01-01 00:00:00 +0000 +++ src/hidpi_check.c 2014-11-28 11:03:18 +0000 @@ -0,0 +1,49 @@ +#include "hidpi_check.h" + +#include + +#include + +int check_hidpi (void) +{ + int result = 0; + int i; + Display *display = XOpenDisplay (NULL); + + if (!display) + return 0; + + Window window = RootWindow (display, XDefaultScreen (display)); + + XRRScreenResources *resources = XRRGetScreenResourcesCurrent (display, window); + + if (!resources) + return 0; + + for (i = 0; i < resources->noutput; ++i) { + XRROutputInfo *output = XRRGetOutputInfo (display, resources, resources->outputs[i]); + + if (output->connection == RR_Disconnected) { + XRRFreeOutputInfo (output); + continue; + } + + if (output->crtc) { + XRRCrtcInfo *crtc = XRRGetCrtcInfo (display, resources, output->crtc); + double diagonal = sqrt (crtc->width * crtc->width + crtc->height * crtc->height); + double diagonal_mm = sqrt (output->mm_width * output->mm_width + output->mm_height * output->mm_height); + int ppi = (int) floor (diagonal * 25.4 / diagonal_mm); + + if (ppi >= 192 && crtc->height >= 1200) + result = 1; + + XRRFreeCrtcInfo (crtc); + } + XRRFreeOutputInfo (output); + } + + XRRFreeScreenResources (resources); + XCloseDisplay (display); + + return result; +} === added file 'src/hidpi_check.h' --- src/hidpi_check.h 1970-01-01 00:00:00 +0000 +++ src/hidpi_check.h 2014-11-28 08:01:56 +0000 @@ -0,0 +1,12 @@ +#ifndef _HIDPI_CHECK_H +#define _HIDPI_CHECK_H 1 + +#include + +__BEGIN_DECLS + +extern int check_hidpi (void); + +__END_DECLS + +#endif === modified file 'src/unity-greeter.vala' --- src/unity-greeter.vala 2014-04-08 15:57:59 +0000 +++ src/unity-greeter.vala 2014-11-28 11:21:06 +0000 @@ -487,6 +487,10 @@ warning ("Error starting the at-spi registry: %s", e.message); } + /* GDK_SCALE needs to be set before Gtk.init () */ + if (HiDPI.check_hidpi ()) + Environment.set_variable ("GDK_SCALE", "2", true); + Gtk.init (ref args); Ido.init (); === added directory 'vapi' === added file 'vapi/Makefile.am' --- vapi/Makefile.am 1970-01-01 00:00:00 +0000 +++ vapi/Makefile.am 2014-11-28 09:06:33 +0000 @@ -0,0 +1,3 @@ +noinst_DATA = hidpi-check.vapi + +EXTRA_DIST = $(noinst_DATA) === added file 'vapi/hidpi-check.vapi' --- vapi/hidpi-check.vapi 1970-01-01 00:00:00 +0000 +++ vapi/hidpi-check.vapi 2014-11-28 07:55:37 +0000 @@ -0,0 +1,6 @@ +[CCode (prefix = "", lower_case_cprefix = "")] +namespace HiDPI +{ + [CCode (cheader_filename = "hidpi_check.h")] + public bool check_hidpi(); +}