@@ -0,0 +1,86 @@
1+diff --git a/meson.build b/meson.build
2+index bcb69cf7..4a18c08c 100644
3+--- a/meson.build
4++++ b/meson.build
5+@@ -162,6 +162,7 @@ gmodule_dep = dependency('gmodule-2.0')
6+ gmodule_no_export_dep = dependency('gmodule-no-export-2.0', version: glib_req_version)
7+ gtk_dep = dependency('gtk+-3.0', version: gtk_req_version)
8+ gthread_dep = dependency('gthread-2.0', version: glib_req_version)
9++granite_dep = dependency('granite')
10+ # Keep the version here synchronised with subprojects/libhandy.wrap
11+ hdy_dep = dependency('libhandy-1', version: hdy_req_version, fallback: ['libhandy', 'libhandy_dep'])
12+
13+diff --git a/shell/ev-application.c b/shell/ev-application.c
14+index e704bda2..d705328c 100644
15+--- a/shell/ev-application.c
16++++ b/shell/ev-application.c
17+@@ -30,6 +30,7 @@
18+ #include <glib/gi18n.h>
19+ #include <glib/gstdio.h>
20+ #include <gtk/gtk.h>
21++#include <granite.h>
22+ #include <handy.h>
23+ #ifdef GDK_WINDOWING_X11
24+ #include <gdk/gdkx.h>
25+@@ -176,7 +177,7 @@ ev_spawn (const char *uri,
26+
27+ g_string_append_printf (cmd, " %s", path);
28+ g_free (path);
29+-
30++
31+ /* Page label */
32+ if (dest) {
33+ switch (ev_link_dest_get_dest_type (dest)) {
34+@@ -940,6 +941,20 @@ ev_application_migrate_config_dir (EvApplication *application)
35+ g_free (old_accels);
36+ }
37+
38++static void
39++ev_application_set_prefers_color_scheme ()
40++{
41++ GtkSettings* gtk_settings = gtk_settings_get_default ();
42++ GraniteSettings* granite_settings = granite_settings_get_default ();
43++
44++ g_object_set (
45++ gtk_settings,
46++ "gtk-application-prefer-dark-theme",
47++ granite_settings_get_prefers_color_scheme (granite_settings) == GRANITE_SETTINGS_COLOR_SCHEME_DARK,
48++ NULL
49++ );
50++}
51++
52+ static void
53+ ev_application_startup (GApplication *gapplication)
54+ {
55+@@ -992,6 +1007,7 @@ ev_application_startup (GApplication *gapplication)
56+
57+ EvApplication *application = EV_APPLICATION (gapplication);
58+ const gchar **it;
59++ GraniteSettings* granite_settings = granite_settings_get_default ();
60+
61+ g_application_set_resource_base_path (gapplication, "/org/gnome/evince");
62+
63+@@ -999,6 +1015,11 @@ ev_application_startup (GApplication *gapplication)
64+
65+ hdy_init ();
66+
67++ ev_application_set_prefers_color_scheme ();
68++
69++ g_signal_connect (granite_settings, "notify::prefers-color-scheme",
70++ G_CALLBACK(ev_application_set_prefers_color_scheme), NULL);
71++
72+ for (it = action_accels; it[0]; it += g_strv_length ((gchar **)it) + 1)
73+ gtk_application_set_accels_for_action (GTK_APPLICATION (application), it[0], &it[1]);
74+ }
75+diff --git a/shell/meson.build b/shell/meson.build
76+index 7cbc48f2..a3089b13 100644
77+--- a/shell/meson.build
78++++ b/shell/meson.build
79+@@ -52,6 +52,7 @@ sources += gnome.compile_resources(
80+ deps = [
81+ gdk_pixbuf_dep,
82+ gnome_desktop_dep,
83++ granite_dep,
84+ hdy_dep,
85+ libevmisc_dep,
86+ libevproperties_dep,