From ea5c5eeb660d4175f6f44169f697511e925c12f9 Mon Sep 17 00:00:00 2001 From: Nickolay V. Shmyrev Date: Mon, 09 Apr 2007 20:17:15 +0000 Subject: Do not make window bigger than screen. Fixes bug #388985. 2007-04-10 Nickolay V. Shmyrev * shell/ev-window.c: (setup_size_from_metadata): Do not make window bigger than screen. Fixes bug #388985. svn path=/trunk/; revision=2400 --- (limited to 'shell') diff --git a/shell/ev-window.c b/shell/ev-window.c index fe82fc8..7e9200c 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -900,8 +900,14 @@ setup_size_from_metadata (EvWindow *window) if (window->priv->page_cache && ev_metadata_manager_get (uri, "window_width_ratio", &width_ratio, FALSE) && ev_metadata_manager_get (uri, "window_height_ratio", &height_ratio, FALSE)) { + gint document_width; gint document_height; + + GdkScreen *screen; + + gint request_width; + gint request_height; ev_page_cache_get_max_width (window->priv->page_cache, 0, 1.0, @@ -910,9 +916,19 @@ setup_size_from_metadata (EvWindow *window) 0, 1.0, &document_height); + request_width = g_value_get_double (&width_ratio) * document_width; + request_height = g_value_get_double (&height_ratio) * document_height; + + screen = gtk_window_get_screen (GTK_WINDOW (window)); + + if (screen) { + request_width = MIN (request_width, gdk_screen_get_width (screen)); + request_height = MIN (request_width, gdk_screen_get_height (screen)); + } + gtk_window_resize (GTK_WINDOW (window), - g_value_get_double (&width_ratio) * document_width, - g_value_get_double (&height_ratio) * document_height); + request_width, + request_height); g_value_unset (&width_ratio); g_value_unset (&height_ratio); } -- cgit v0.9.1