Index: app/config/gimpdisplayconfig.c
===================================================================
RCS file: /cvs/gnome/gimp/app/config/gimpdisplayconfig.c,v
retrieving revision 1.15
diff -u -b -r1.15 gimpdisplayconfig.c
--- app/config/gimpdisplayconfig.c	25 Jan 2003 20:29:38 -0000	1.15
+++ app/config/gimpdisplayconfig.c	24 Feb 2003 14:55:51 -0000
@@ -75,7 +75,8 @@
   PROP_MONITOR_RES_FROM_GDK,
   PROP_NAV_PREVIEW_SIZE,
   PROP_CANVAS_PADDING_MODE,
-  PROP_CANVAS_PADDING_COLOR
+  PROP_CANVAS_PADDING_COLOR,
+  PROP_DEFAULT_OVERVIEW
 };
 
 static GObjectClass *parent_class = NULL;
@@ -149,6 +150,13 @@
                                     DEFAULT_DOT_FOR_DOT_BLURB,
                                     TRUE,
                                     0);
+  
+  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_DEFAULT_OVERVIEW,
+                                    "default-overview",
+                                    DEFAULT_OVERVIEW_BLURB,
+                                    FALSE,
+                                    0);
+
   GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_PERFECT_MOUSE,
                                     "perfect-mouse", PERFECT_MOUSE_BLURB,
                                     FALSE,
@@ -262,6 +270,9 @@
     case PROP_DEFAULT_DOT_FOR_DOT:
       display_config->default_dot_for_dot = g_value_get_boolean (value);
       break;
+    case PROP_DEFAULT_OVERVIEW:
+      display_config->default_overview = g_value_get_boolean (value);
+      break;
     case PROP_PERFECT_MOUSE:
       display_config->perfect_mouse = g_value_get_boolean (value);
       break;
@@ -342,6 +353,9 @@
       break;
     case PROP_DEFAULT_DOT_FOR_DOT:
       g_value_set_boolean (value, display_config->default_dot_for_dot);
+      break;
+    case PROP_DEFAULT_OVERVIEW:
+      g_value_set_boolean (value, display_config->default_overview);
       break;
     case PROP_PERFECT_MOUSE:
       g_value_set_boolean (value, display_config->perfect_mouse);
Index: app/config/gimpdisplayconfig.h
===================================================================
RCS file: /cvs/gnome/gimp/app/config/gimpdisplayconfig.h,v
retrieving revision 1.9
diff -u -b -r1.9 gimpdisplayconfig.h
--- app/config/gimpdisplayconfig.h	14 Dec 2002 14:13:51 -0000	1.9
+++ app/config/gimpdisplayconfig.h	24 Feb 2003 14:55:51 -0000
@@ -60,6 +60,7 @@
   GimpPreviewSize         nav_preview_size;
   GimpDisplayPaddingMode  canvas_padding_mode;
   GimpRGB                 canvas_padding_color;
+  gboolean                default_overview;
 };
 
 struct _GimpDisplayConfigClass
Index: app/config/gimprc-blurbs.h
===================================================================
RCS file: /cvs/gnome/gimp/app/config/gimprc-blurbs.h,v
retrieving revision 1.8
diff -u -b -r1.8 gimprc-blurbs.h
--- app/config/gimprc-blurbs.h	12 Feb 2003 17:11:29 -0000	1.8
+++ app/config/gimprc-blurbs.h	24 Feb 2003 14:55:51 -0000
@@ -45,6 +45,10 @@
 N_("When set to yes, this will ensure that each pixel of an image gets " \
    "mapped to a pixel on the screen.")
 
+#define DEFAULT_OVERVIEW_BLURB \
+N_("When set to yes, this will ensure that the full image is visible after " \
+   "a file is opened (\"no\" means opening with 1:1 zoom.")
+
 #define DEFAULT_GRADIENT_BLURB \
 "Specify a default gradient.  The gradient is searched for in the " \
 "specified gradient path."
Index: app/display/gimpdisplayshell.c
===================================================================
RCS file: /cvs/gnome/gimp/app/display/gimpdisplayshell.c,v
retrieving revision 1.237
diff -u -b -r1.237 gimpdisplayshell.c
--- app/display/gimpdisplayshell.c	21 Feb 2003 12:16:42 -0000	1.237
+++ app/display/gimpdisplayshell.c	24 Feb 2003 14:55:51 -0000
@@ -26,6 +26,7 @@
 #include "display-types.h"
 #include "tools/tools-types.h"
 
+
 #ifdef __GNUC__
 #warning FIXME #include "gui/gui-types.h"
 #endif
@@ -380,6 +381,7 @@
   return TRUE;
 }
 
+
 GtkWidget *
 gimp_display_shell_new (GimpDisplay     *gdisp,
                         guint            scale,
@@ -432,6 +434,7 @@
   n_width  = SCALEX (shell, image_width);
   n_height = SCALEX (shell, image_height);
 
+  if(config->default_overview) {
   /*  Limit to the size of the screen...  */
   while (n_width > s_width || n_height > s_height)
     {
@@ -452,9 +455,19 @@
       if (scaledest == 1 && scalesrc == 0xFF)
         break;
     }
+  } else {
+    /* Set up size like above, but do not zoom to fit. 
+       Useful when working on large images. */
+    
+    if(n_width > s_width)
+      n_width=s_width;
 
+    if(n_height > s_height)
+      n_height=s_height;
+  }
   shell->scale = (scaledest << 8) + scalesrc;
 
+
   shell->menubar_factory = gimp_menu_factory_menu_new (menu_factory,
                                                        "<Image>",
                                                        GTK_TYPE_MENU_BAR,
@@ -1118,6 +1131,7 @@
 
   g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
 
+  
   factor = ((gdouble) gimp_image_get_height (shell->gdisp->gimage) /
             (gdouble) gimp_image_get_width (shell->gdisp->gimage));
 
Index: app/gui/preferences-dialog.c
===================================================================
RCS file: /cvs/gnome/gimp/app/gui/preferences-dialog.c,v
retrieving revision 1.219
diff -u -b -r1.219 preferences-dialog.c
--- app/gui/preferences-dialog.c	12 Feb 2003 17:11:33 -0000	1.219
+++ app/gui/preferences-dialog.c	24 Feb 2003 14:55:51 -0000
@@ -1302,6 +1302,9 @@
   prefs_check_button_add (config, "default-dot-for-dot",
                           _("Use \"_Dot for Dot\" by default"),
                           GTK_BOX (vbox2));
+  prefs_check_button_add (config, "default-overview",
+                          _("Zoom to _fit window by default"),
+                          GTK_BOX (vbox2));
   prefs_check_button_add (config, "show-menubar",
                           _("Show Menubar"),
                           GTK_BOX (vbox2));

