summaryrefslogtreecommitdiffstats
path: root/src/arglist.c
diff options
context:
space:
mode:
authorColin Kennedy <colinvfx@gmail.com>2024-03-03 16:16:47 +0100
committerChristian Brabandt <cb@256bit.org>2024-03-03 16:16:47 +0100
commit215703563757a4464907ead6fb9edaeb7f430bea (patch)
tree380d7492e2fc174d13a073c6fd4e8dae6714030f /src/arglist.c
parent353faa373eb132987a1985cf3abe18c006f8cdf0 (diff)
patch 9.1.0147: Cannot keep a buffer focused in a windowv9.1.0147
Problem: Cannot keep a buffer focused in a window (Amit Levy) Solution: Add the 'winfixbuf' window-local option (Colin Kennedy) fixes: #6445 closes: #13903 Signed-off-by: Colin Kennedy <colinvfx@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/arglist.c')
-rw-r--r--src/arglist.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/arglist.c b/src/arglist.c
index 723133254a..187e16e835 100644
--- a/src/arglist.c
+++ b/src/arglist.c
@@ -682,6 +682,7 @@ do_argfile(exarg_T *eap, int argn)
int other;
char_u *p;
int old_arg_idx = curwin->w_arg_idx;
+ int is_split_cmd = *eap->cmd == 's';
if (ERROR_IF_ANY_POPUP_WINDOW)
return;
@@ -697,13 +698,18 @@ do_argfile(exarg_T *eap, int argn)
return;
}
+ if (!is_split_cmd
+ && (&ARGLIST[argn])->ae_fnum != curbuf->b_fnum
+ && !check_can_set_curbuf_forceit(eap->forceit))
+ return;
+
setpcmark();
#ifdef FEAT_GUI
need_mouse_correct = TRUE;
#endif
// split window or create new tab page first
- if (*eap->cmd == 's' || cmdmod.cmod_tab != 0)
+ if (is_split_cmd || cmdmod.cmod_tab != 0)
{
if (win_split(0, 0) == FAIL)
return;