From: Nickolay V. Shmyrev Date: Mon, 9 Apr 2007 20:17:15 +0000 (+0000) Subject: Do not make window bigger than screen. Fixes bug #388985. X-Git-Tag: EVINCE_0_8_1~1 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=ea5c5eeb660d4175f6f44169f697511e925c12f9;p=evince.git 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 --- diff --git a/ChangeLog b/ChangeLog index 64187725..72747c87 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ -2007-03-08 Carlos Garcia Campos +2007-04-10 Nickolay V. Shmyrev + + * shell/ev-window.c: (setup_size_from_metadata): + + Do not make window bigger than screen. Fixes bug + #388985. + +2007-04-08 Carlos Garcia Campos * backend/tiff/tiff-document.c: (tiff_document_get_resolution), (tiff_document_get_page_size), (tiff_document_render_pixbuf): @@ -6,7 +13,7 @@ Use default resolution when it's not provided by document. Fixes bug #408762. -2007-03-08 Carlos Garcia Campos +2007-04-08 Carlos Garcia Campos * configure.ac: * thumbnailer/Makefile.am: diff --git a/shell/ev-window.c b/shell/ev-window.c index fe82fc80..7e9200c5 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); }