From c5d5d01ad9e3003f88a1c9aff0f4277c5f6c600e Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 27 Jan 2010 21:05:05 +0100 Subject: 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. --- src/gui.c | 14 ++++++++++---- src/version.c | 2 ++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/gui.c b/src/gui.c index 48e7b0fb0..2c307faaa 100644 --- a/src/gui.c +++ b/src/gui.c @@ -1390,6 +1390,7 @@ gui_set_shellsize(mustset, fit_to_display, direction) 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_display, direction) 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_display, direction) gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction); - if (fit_to_display) - { - int x, y; - /* Some window managers put the Vim window left of/above the screen. */ + if (fit_to_display && x >= 0 && y >= 0) + { + /* 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 index 2fbee777e..7e39961af 100644 --- a/src/version.c +++ b/src/version.c @@ -681,6 +681,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 350, /**/ 349, /**/ -- cgit v1.2.1