changeset 2065:9b78bb3794ba v7.2.350

updated for version 7.2.350 Problem: Win32: When changing font the window may jump from the secondary to the primary screen. (Michael Wookey) Solution: When the screen position was negative don't correct it to zero.
author Bram Moolenaar <bram@zimbu.org>
date Wed, 27 Jan 2010 21:05:05 +0100
parents f398e0cc5b7a
children 2bd96108392e
files src/gui.c src/version.c
diffstat 2 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/gui.c
+++ b/src/gui.c
@@ -1390,6 +1390,7 @@ gui_set_shellsize(mustset, fit_to_displa
     int		un_maximize = mustset;
     int         did_adjust = 0;
 #endif
+    int		x = -1, y = -1;
 
     if (!gui.shell_created)
 	return;
@@ -1406,6 +1407,10 @@ gui_set_shellsize(mustset, fit_to_displa
 
     base_width = gui_get_base_width();
     base_height = gui_get_base_height();
+    if (fit_to_display)
+	/* Remember the original window position. */
+	gui_mch_get_winpos(&x, &y);
+
 #ifdef USE_SUN_WORKSHOP
     if (!mustset && usingSunWorkShop
 				&& workshop_get_width_height(&width, &height))
@@ -1473,11 +1478,12 @@ gui_set_shellsize(mustset, fit_to_displa
 
     gui_mch_set_shellsize(width, height, min_width, min_height,
 					  base_width, base_height, direction);
-    if (fit_to_display)
+
+    if (fit_to_display && x >= 0 && y >= 0)
     {
-	int	    x, y;
-
-	/* Some window managers put the Vim window left of/above the screen. */
+	/* Some window managers put the Vim window left of/above the screen.
+	 * Only change the position if it wasn't already negative before
+	 * (happens on MS-Windows with a secondary monitor). */
 	gui_mch_update();
 	if (gui_mch_get_winpos(&x, &y) == OK && (x < 0 || y < 0))
 	    gui_mch_set_winpos(x < 0 ? 0 : x, y < 0 ? 0 : y);
--- a/src/version.c
+++ b/src/version.c
@@ -682,6 +682,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    350,
+/**/
     349,
 /**/
     348,