diff --git a/lua/floaterm/api.lua b/lua/floaterm/api.lua index 387bfa4..8ec0ec6 100644 --- a/lua/floaterm/api.lua +++ b/lua/floaterm/api.lua @@ -4,7 +4,7 @@ local volt_redraw = require("volt").redraw local M = {} M.edit_name = function() - local row = utils.get_buf_on_cursor() + local row = utils.get_selected_term_index() if row then vim.ui.input({ prompt = "  Enter name: " }, function(input) @@ -63,7 +63,7 @@ M.delete_term = function(buf) local method = buf and "automatic" or "manual" if not buf then - local i = utils.get_buf_on_cursor() + local i = utils.get_selected_term_index() if i then buf = state.terminals[i].buf end diff --git a/lua/floaterm/utils.lua b/lua/floaterm/utils.lua index a5db29b..aa331d6 100644 --- a/lua/floaterm/utils.lua +++ b/lua/floaterm/utils.lua @@ -116,6 +116,10 @@ M.get_term_by_key = function(tocompare, name) end M.get_buf_on_cursor = function() + local curwin = vim.api.nvim_get_current_win() + if curwin ~= state.sidewin then + return nil + end local row = vim.api.nvim_win_get_cursor(0)[1] if not state.terminals[row] then @@ -126,6 +130,12 @@ M.get_buf_on_cursor = function() return row end +M.get_selected_term_index = function() + local row = M.get_buf_on_cursor() + local term = M.get_term_by_key(state.buf)[1] + return row or term +end + M.close_timers = function() state.bar_redraw_timer:stop() state.bar_redraw_timer:close()