Mercurial > vim
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);