Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--shell/ev-window.c20
2 files changed, 27 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 6418772..72747c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,11 @@
-2007-03-08 Carlos Garcia Campos <carlosgc@gnome.org>
+2007-04-10 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
+
+ * shell/ev-window.c: (setup_size_from_metadata):
+
+ Do not make window bigger than screen. Fixes bug
+ #388985.
+
+2007-04-08 Carlos Garcia Campos <carlosgc@gnome.org>
* 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 <carlosgc@gnome.org>
+2007-04-08 Carlos Garcia Campos <carlosgc@gnome.org>
* configure.ac:
* thumbnailer/Makefile.am:
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);
}