File evince-shell-Use-monitor-instead-of-screen.patch of Package evince

From ad9f94b35cc09d148dfad8cb0d9efd94010daad3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Germ=C3=A1n=20Poo-Caama=C3=B1o?= <gpoo@gnome.org>
Date: Mon, 12 Nov 2018 12:23:39 -0300
Subject: [PATCH] shell: Use monitor instead of screen to determine window size

Replace gdk_screen_width/height deprecated API

Fixes #757
---
 shell/ev-window.c | 36 +++++++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/shell/ev-window.c b/shell/ev-window.c
index 142836ba..11169c14 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -1253,6 +1253,31 @@ setup_model_from_metadata (EvWindow *window)
 	}
 }
 
+static void
+monitor_get_dimesions (EvWindow *ev_window,
+                       gint     *width,
+                       gint     *height)
+{
+	GdkDisplay  *display;
+	GdkWindow   *gdk_window;
+	GdkMonitor  *monitor;
+	GdkRectangle geometry;
+
+	*width = 0;
+	*height = 0;
+
+	display = gtk_widget_get_display (GTK_WIDGET (ev_window));
+	gdk_window = gtk_widget_get_window (GTK_WIDGET (ev_window));
+
+	if (gdk_window) {
+		monitor = gdk_display_get_monitor_at_window (display,
+							     gdk_window);
+		gdk_monitor_get_workarea (monitor, &geometry);
+		*width = geometry.width;
+		*height = geometry.height;
+	}
+}
+
 static void
 setup_document_from_metadata (EvWindow *window)
 {
@@ -1292,9 +1317,10 @@ setup_document_from_metadata (EvWindow *window)
 	if (width_ratio > 0. && height_ratio > 0.) {
 		gdouble    document_width;
 		gdouble    document_height;
-		GdkScreen *screen;
 		gint       request_width;
 		gint       request_height;
+		gint       monitor_width;
+		gint       monitor_height;
 
 		ev_document_get_max_page_size (window->priv->document,
 					       &document_width, &document_height);
@@ -1302,10 +1328,10 @@ setup_document_from_metadata (EvWindow *window)
 		request_width = (gint)(width_ratio * document_width + 0.5);
 		request_height = (gint)(height_ratio * document_height + 0.5);
 
-		screen = gtk_window_get_screen (GTK_WINDOW (window));
-		if (screen) {
-			request_width = MIN (request_width, gdk_screen_get_width (screen));
-			request_height = MIN (request_height, gdk_screen_get_height (screen));
+		monitor_get_dimesions (window, &monitor_width, &monitor_height);
+		if (monitor_width > 0 && monitor_height > 0) {
+			request_width = MIN (request_width, monitor_width);
+			request_height = MIN (request_height, monitor_height);
 		}
 
 		if (request_width > 0 && request_height > 0) {
-- 
2.18.1