1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-02-15 08:50:09 +01:00
slackware-current/source/ap/vim/patches/7.3.393
Patrick J Volkerding 9664bee729 Slackware 14.0
Wed Sep 26 01:10:42 UTC 2012
Slackware 14.0 x86_64 stable is released!

We're perfectionists here at Slackware, so this release has been a long
time a-brewing.  But we think you'll agree that it was worth the wait.
Slackware 14.0 combines modern components, ease of use, and flexible
configuration... our "KISS" philosophy demands it.

The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD.  Please consider supporting the Slackware
project by picking up a copy from store.slackware.com.  We're taking
pre-orders now, and offer a discount if you sign up for a subscription.

Thanks to everyone who helped make this happen.  The Slackware team, the
upstream developers, and (of course) the awesome Slackware user
community.

Have fun!  :-)
2018-05-31 22:51:55 +02:00

130 lines
4.7 KiB
Text

To: vim_dev@googlegroups.com
Subject: Patch 7.3.393
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.393
Problem: Win32: When resizing Vim it is always moved to the primary monitor
if the secondary monitor is on the left.
Solution: Use the nearest monitor. (Yukihiro Nakadaira)
Files: src/gui_w32.c
*** ../vim-7.3.392/src/gui_w32.c 2011-12-15 21:51:32.000000000 +0100
--- src/gui_w32.c 2012-01-04 20:25:58.000000000 +0100
***************
*** 1661,1669 ****
{
RECT workarea_rect;
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
--- 1661,1667 ----
***************
*** 1685,1693 ****
GetWindowPlacement(s_hwnd, &wndpl);
}
- win_xpos = wndpl.rcNormalPosition.left;
- win_ypos = wndpl.rcNormalPosition.top;
-
/* compute the size of the outside of the window */
win_width = width + GetSystemMetrics(SM_CXFRAME) * 2;
win_height = height + GetSystemMetrics(SM_CYFRAME) * 2
--- 1683,1688 ----
***************
*** 1697,1732 ****
#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_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;
if ((direction & RESIZE_VERT)
! && workarea_rect.top + win_ypos + win_height > workarea_rect.bottom)
! win_ypos = workarea_rect.bottom - win_height - workarea_rect.top;
! if ((direction & RESIZE_VERT) && win_ypos < 0)
! win_ypos = 0;
!
! wndpl.rcNormalPosition.left = win_xpos;
! wndpl.rcNormalPosition.right = win_xpos + win_width;
! wndpl.rcNormalPosition.top = win_ypos;
! wndpl.rcNormalPosition.bottom = win_ypos + win_height;
/* set window position - we should use SetWindowPlacement rather than
* SetWindowPos as the MSDN docs say the coord systems returned by
--- 1692,1723 ----
#endif
;
! /* The following should take care of keeping Vim on the same monitor, no
! * matter if the secondary monitor is left or right of the primary
! * monitor. */
! wndpl.rcNormalPosition.right = wndpl.rcNormalPosition.left + win_width;
! wndpl.rcNormalPosition.bottom = wndpl.rcNormalPosition.top + win_height;
! /* If the window is going off the screen, move it on to the screen. */
if ((direction & RESIZE_HOR)
! && wndpl.rcNormalPosition.right > workarea_rect.right)
! OffsetRect(&wndpl.rcNormalPosition,
! workarea_rect.right - wndpl.rcNormalPosition.right, 0);
! if ((direction & RESIZE_HOR)
! && wndpl.rcNormalPosition.left < workarea_rect.left)
! OffsetRect(&wndpl.rcNormalPosition,
! workarea_rect.left - wndpl.rcNormalPosition.left, 0);
if ((direction & RESIZE_VERT)
! && wndpl.rcNormalPosition.bottom > workarea_rect.bottom)
! OffsetRect(&wndpl.rcNormalPosition,
! 0, workarea_rect.bottom - wndpl.rcNormalPosition.bottom);
! if ((direction & RESIZE_VERT)
! && wndpl.rcNormalPosition.top < workarea_rect.top)
! OffsetRect(&wndpl.rcNormalPosition,
! 0, workarea_rect.top - wndpl.rcNormalPosition.top);
/* set window position - we should use SetWindowPlacement rather than
* SetWindowPos as the MSDN docs say the coord systems returned by
*** ../vim-7.3.392/src/version.c 2012-01-04 19:34:32.000000000 +0100
--- src/version.c 2012-01-04 20:28:57.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 393,
/**/
--
I wonder, do vegetarians eat fruit bats?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///