Mercurial > vim
view nsis/README.txt @ 34548:db67c09ccd53 v9.1.0175
patch 9.1.0175: wrong window positions with 'winfix{width,height}'
Commit: https://github.com/vim/vim/commit/5866bc3a0f54115d5982fdc09bdbe4c45069265a
Author: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Date: Wed Mar 13 20:17:24 2024 +0100
patch 9.1.0175: wrong window positions with 'winfix{width,height}'
Problem: winframe functions incorrectly recompute window positions if
the altframe wasn't adjacent to the closed frame, which is
possible if adjacent windows had 'winfix{width,height}' set.
Solution: recompute for windows within the parent of the altframe and
closed frame. Skip this (as before) if the altframe was
top/left, but only if adjacent to the closed frame, as
positions won't change in that case. Also correct the return
value documentation for win_screenpos. (Sean Dewar)
The issue revealed itself after removing the win_comp_pos call below
winframe_restore in win_splitmove. Similarly, wrong positions could result from
windows closed in other tabpages, as win_free_mem uses winframe_remove (at least
until it is entered later, where enter_tabpage calls win_comp_pos).
NOTE: As win_comp_pos handles only curtab, it's possible via other means for
positions in non-current tabpages to be wrong (e.g: after changing 'laststatus',
'showtabline', etc.). Given enter_tabpage recomputes it, maybe it's intentional
as an optimization? Should probably be documented in win_screenpos then, but I
won't address that here.
closes: #14191
Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 13 Mar 2024 20:30:03 +0100 |
parents | 238f424acc6c |
children | d91ac228d7df |
line wrap: on
line source
This builds a one-click install for Vim for Win32 using the Nullsoft Installation System (NSIS), available at http://nsis.sourceforge.net/ To build the installable .exe: 1. Unpack three archives: PC sources PC runtime PC language files You can generate these from the Unix sources and runtime plus the extra archive (see the Makefile in the top directory). 2. Go to the src directory and build: gvim.exe (the OLE version), vimrun.exe, install.exe, uninstall.exe, tee/tee.exe, xxd/xxd.exe, Then execute tools/rename.bat to rename the executables. (mv command is required.) 3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary archive). Both 64- and 32-bit versions are needed and should be placed as follows: 64-bit: src/GvimExt/gvimext64.dll 32-bit: src/GvimExt/gvimext.dll 4. Get a "diff.exe" program. If you skip this the built-in diff will always be used (which is fine for most users). If you do have your own "diff.exe" put it in the "../.." directory (above the "vim90" directory, it's the same for all Vim versions). You can find one in previous Vim versions or in this archive: http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz 5 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim90" directory). This is required for the terminal window. 6. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have to do this on Unix. Make sure the file is in DOS file format! 7. Get gettext and iconv DLLs from the following site: https://github.com/mlocati/gettext-iconv-windows/releases Both 64- and 32-bit versions are needed. Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract DLLs and place them as follows: <GETTEXT directory> | + gettext32/ | libintl-8.dll | libiconv-2.dll | libgcc_s_sjlj-1.dll | ` gettext64/ libintl-8.dll libiconv-2.dll The default <GETTEXT directory> is "..", however, you can change it by passing /DGETTEXT=... option to the makensis command. Install NSIS if you didn't do that already. Also install UPX, if you want a compressed file. Download and include the ShellExecAsUser.dll Unicode version which can be sourced from: https://nsis.sourceforge.io/ShellExecAsUser_plug-in Unpack the images: cd nsis unzip icons.zip Then build gvim.exe: cd nsis makensis gvim.nsi