Created an extra command, to implement appropriat cmd+w behaviour on mac.

This commit is contained in:
Adam Harrison 2021-06-27 13:18:54 -04:00
parent cc568e65fc
commit fd3f25608f
3 changed files with 13 additions and 4 deletions

View File

@ -11,6 +11,15 @@ local t = {
node:close_active_view(core.root_view.root_node) node:close_active_view(core.root_view.root_node)
end, end,
["root:close-or-quit"] = function()
local node = core.root_view:get_active_node()
if node and (not node:is_empty() or not node.is_primary_node) then
node:close_active_view(core.root_view.root_node)
else
core.quit()
end
end,
["root:close-all"] = function() ["root:close-all"] = function()
core.confirm_close_all(core.root_view.close_all_docviews, core.root_view) core.confirm_close_all(core.root_view.close_all_docviews, core.root_view)
end, end,

View File

@ -17,7 +17,8 @@ local function keymap_macos(keymap)
["cmd+ctrl+i"] = "root:switch-to-up", ["cmd+ctrl+i"] = "root:switch-to-up",
["cmd+ctrl+k"] = "root:switch-to-down", ["cmd+ctrl+k"] = "root:switch-to-down",
["cmd+w"] = "root:close",
["cmd+w"] = "root:close-or-quit",
["ctrl+tab"] = "root:switch-to-next-tab", ["ctrl+tab"] = "root:switch-to-next-tab",
["ctrl+shift+tab"] = "root:switch-to-previous-tab", ["ctrl+shift+tab"] = "root:switch-to-previous-tab",
["cmd+pageup"] = "root:move-tab-left", ["cmd+pageup"] = "root:move-tab-left",
@ -31,7 +32,6 @@ local function keymap_macos(keymap)
["cmd+7"] = "root:switch-to-tab-7", ["cmd+7"] = "root:switch-to-tab-7",
["cmd+8"] = "root:switch-to-tab-8", ["cmd+8"] = "root:switch-to-tab-8",
["cmd+9"] = "root:switch-to-tab-9", ["cmd+9"] = "root:switch-to-tab-9",
["cmd+f"] = "find-replace:find", ["cmd+f"] = "find-replace:find",
["cmd+r"] = "find-replace:replace", ["cmd+r"] = "find-replace:replace",
["f3"] = "find-replace:repeat-find", ["f3"] = "find-replace:repeat-find",

View File

@ -584,7 +584,7 @@ end
function Node:is_empty() function Node:is_empty()
if self.type == "leaf" then if self.type == "leaf" then
return #self.views == 0 return #self.views == 0 or (#self.views == 1 and self.views[1]:is(EmptyView))
else else
return self.a:is_empty() and self.b:is_empty() return self.a:is_empty() and self.b:is_empty()
end end