diff options
author | Bram Moolenaar <Bram@vim.org> | 2006-05-06 21:44:30 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2006-05-06 21:44:30 +0000 |
commit | 56a907af93bfd0a51f79c7441d679889d936a223 (patch) | |
tree | 2fd8bf07fcce5c31718dcddc54bd9b1e29753a01 /src/gui_w32.c | |
parent | 97e8f356004f564d3232a64428927d3c29164f66 (diff) | |
download | vim-git-56a907af93bfd0a51f79c7441d679889d936a223.tar.gz |
updated for version 7.0g05
Diffstat (limited to 'src/gui_w32.c')
-rw-r--r-- | src/gui_w32.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c index 711fe825e..cf1f6fcdb 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -1599,6 +1599,7 @@ gui_mch_set_shellsize(int width, int height, int win_width, win_height; int win_xpos, win_ypos; WINDOWPLACEMENT wndpl; + int workarea_left; /* Try to keep window completely on screen. */ /* Get position of the screen work area. This is the part that is not @@ -1632,11 +1633,21 @@ gui_mch_set_shellsize(int width, int height, #endif ; + /* There is an inconsistency when using two monitors and Vim is on the + * second (right) one: win_xpos will be the offset from the workarea of + * the left monitor. While with one monitor it's the offset from the + * workarea (including a possible taskbar on the left). Detect the second + * monitor by checking for the left offset to be quite big. */ + if (workarea_rect.left > 300) + workarea_left = 0; + else + workarea_left = workarea_rect.left; + /* If the window is going off the screen, move it on to the screen. * win_xpos and win_ypos are relative to the workarea. */ if ((direction & RESIZE_HOR) - && workarea_rect.left + win_xpos + win_width > workarea_rect.right) - win_xpos = workarea_rect.right - win_width - workarea_rect.left; + && workarea_left + win_xpos + win_width > workarea_rect.right) + win_xpos = workarea_rect.right - win_width - workarea_left; if ((direction & RESIZE_HOR) && win_xpos < 0) win_xpos = 0; |