# HG changeset patch # User Bram Moolenaar # Date 1264622705 -3600 # Node ID 9b78bb3794ba4dba44ab3eab9ab2984797e839d6 # Parent f398e0cc5b7a032f327aa2f33b71c3bb6a22d46b 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. diff --git a/src/gui.c b/src/gui.c --- 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); diff --git a/src/version.c b/src/version.c --- 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,