aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorluukvbaal <luukvbaal@gmail.com>2024-11-17 00:32:36 +0100
committerGitHub <noreply@github.com>2024-11-16 15:32:36 -0800
commitf85bc41c800d7f5c0256f29aa347a53600a7c8d5 (patch)
tree1f3c0bd41f196856945b363d7de0f0aaa3b4d5dd /src
parent29ded889579a9d590e8ea885a9a402ff4bae87be (diff)
downloadrneovim-f85bc41c800d7f5c0256f29aa347a53600a7c8d5.tar.gz
rneovim-f85bc41c800d7f5c0256f29aa347a53600a7c8d5.tar.bz2
rneovim-f85bc41c800d7f5c0256f29aa347a53600a7c8d5.zip
feat(ui): don't show unfocusable windows in :tabs, 'tabline' #27984
Problem: Floating windows with focusable set to false can reasonably be expected to be UI elements but are listed in some outputs that should contain only regular windows. Solution: Hide unfocusable floating windows from the default tabline and :tabs.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/api/win_config.c2
-rw-r--r--src/nvim/ex_docmd.c2
-rw-r--r--src/nvim/statusline.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/src/nvim/api/win_config.c b/src/nvim/api/win_config.c
index 16811e0cd9..6f5a9a90c0 100644
--- a/src/nvim/api/win_config.c
+++ b/src/nvim/api/win_config.c
@@ -130,7 +130,7 @@
/// - focusable: Enable focus by user actions (wincmds, mouse events).
/// Defaults to true. Non-focusable windows can be entered by
/// |nvim_set_current_win()|, or, when the `mouse` field is set to true,
-/// by mouse events.
+/// by mouse events. See |focusable|.
/// - mouse: Specify how this window interacts with mouse events.
/// Defaults to `focusable` value.
/// - If false, mouse events pass through this window.
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index e8b9470391..f5ecedf827 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -5507,6 +5507,8 @@ static void ex_tabs(exarg_T *eap)
FOR_ALL_WINDOWS_IN_TAB(wp, tp) {
if (got_int) {
break;
+ } else if (!wp->w_config.focusable) {
+ continue;
}
msg_putchar('\n');
diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c
index ba64633df7..4e78067d46 100644
--- a/src/nvim/statusline.c
+++ b/src/nvim/statusline.c
@@ -760,7 +760,9 @@ void draw_tabline(void)
bool modified = false;
for (wincount = 0; wp != NULL; wp = wp->w_next, wincount++) {
- if (bufIsChanged(wp->w_buffer)) {
+ if (!wp->w_config.focusable) {
+ wincount--;
+ } else if (bufIsChanged(wp->w_buffer)) {
modified = true;
}
}