summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libdocument/ev-document-misc.c6
-rw-r--r--libview/ev-view-presentation.c10
-rw-r--r--libview/ev-view.c10
-rw-r--r--shell/ev-window.c10
4 files changed, 27 insertions, 9 deletions
diff --git a/libdocument/ev-document-misc.c b/libdocument/ev-document-misc.c
index fc47a9ee..e59eb354 100644
--- a/libdocument/ev-document-misc.c
+++ b/libdocument/ev-document-misc.c
@@ -375,9 +375,13 @@ gdouble
ev_document_misc_get_screen_dpi (GdkScreen *screen, gint monitor)
{
gdouble dp, di;
+ gint sc_width, sc_height;
+
+ gdk_window_get_geometry (gdk_screen_get_root_window (screen), NULL, NULL,
+ &sc_width, &sc_height);
/*diagonal in pixels*/
- dp = hypot (gdk_screen_get_width (screen), gdk_screen_get_height (screen));
+ dp = hypot (sc_width, sc_height);
/*diagonal in inches*/
di = hypot (gdk_screen_get_width_mm(screen), gdk_screen_get_height_mm (screen)) / 25.4;
diff --git a/libview/ev-view-presentation.c b/libview/ev-view-presentation.c
index 74ce60ee..40dea3ea 100644
--- a/libview/ev-view-presentation.c
+++ b/libview/ev-view-presentation.c
@@ -720,12 +720,16 @@ ev_view_presentation_goto_window_send_key_event (EvViewPresentation *pview,
{
GdkEventKey *new_event;
GdkScreen *screen;
+ gint sc_width;
+ gint sc_height;
/* Move goto window off screen */
screen = gtk_widget_get_screen (GTK_WIDGET (pview));
- gtk_window_move (GTK_WINDOW (pview->goto_window),
- gdk_screen_get_width (screen) + 1,
- gdk_screen_get_height (screen) + 1);
+
+ gdk_window_get_geometry (gdk_screen_get_root_window (screen), NULL, NULL,
+ &sc_width, &sc_height);
+
+ gtk_window_move (GTK_WINDOW (pview->goto_window), sc_width + 1, sc_height + 1);
gtk_widget_show (pview->goto_window);
new_event = (GdkEventKey *) gdk_event_copy (event);
diff --git a/libview/ev-view.c b/libview/ev-view.c
index 2007dd56..2340d0a9 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -4449,15 +4449,19 @@ show_loading_window_cb (EvView *view)
if (!view->loading_window) {
GtkWindow *parent;
GdkScreen *screen;
+ gint sc_width;
+ gint sc_height;
parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view)));
view->loading_window = ev_loading_window_new (parent);
/* Show the window off screen to get a valid size asap */
screen = gtk_widget_get_screen (GTK_WIDGET (view));
- gtk_window_move (GTK_WINDOW (view->loading_window),
- gdk_screen_get_width (screen) + 1,
- gdk_screen_get_height (screen) + 1);
+
+ gdk_window_get_geometry (gdk_screen_get_root_window (screen), NULL, NULL,
+ &sc_width, &sc_height);
+
+ gtk_window_move (GTK_WINDOW (view->loading_window), sc_width + 1, sc_height + 1);
gtk_widget_show (view->loading_window);
}
diff --git a/shell/ev-window.c b/shell/ev-window.c
index b82d137f..ca906be3 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -1299,6 +1299,8 @@ setup_document_from_metadata (EvWindow *window)
GdkScreen *screen;
gint request_width;
gint request_height;
+ gint sc_width;
+ gint sc_height;
ev_document_get_max_page_size (window->priv->document,
&document_width, &document_height);
@@ -1307,9 +1309,13 @@ setup_document_from_metadata (EvWindow *window)
request_height = (gint)(height_ratio * document_height + 0.5);
screen = gtk_window_get_screen (GTK_WINDOW (window));
+
+ gdk_window_get_geometry (gdk_screen_get_root_window (screen), NULL, NULL,
+ &sc_width, &sc_height);
+
if (screen) {
- request_width = MIN (request_width, gdk_screen_get_width (screen));
- request_height = MIN (request_height, gdk_screen_get_height (screen));
+ request_width = MIN (request_width, sc_width);
+ request_height = MIN (request_height, sc_height);
}
if (request_width > 0 && request_height > 0) {