summaryrefslogtreecommitdiffstats
path: root/src/gui_w32.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2006-05-06 21:44:30 +0000
committerBram Moolenaar <Bram@vim.org>2006-05-06 21:44:30 +0000
commit56a907af93bfd0a51f79c7441d679889d936a223 (patch)
tree2fd8bf07fcce5c31718dcddc54bd9b1e29753a01 /src/gui_w32.c
parent97e8f356004f564d3232a64428927d3c29164f66 (diff)
updated for version 7.0g05
Diffstat (limited to 'src/gui_w32.c')
-rw-r--r--src/gui_w32.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 711fe825e9..cf1f6fcdb6 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;