Merge pull request #589 from adamharrison/clicks-keymap

Added in clicks to keymap.
This commit is contained in:
Adam
2021-11-16 15:49:52 -05:00
committed by GitHub
13 changed files with 99 additions and 80 deletions
+23 -4
View File
@@ -1,4 +1,5 @@
local command = require "core.command"
local config = require "core.config"
local keymap = {}
keymap.modkeys = {}
@@ -89,7 +90,7 @@ function keymap.get_binding(cmd)
end
function keymap.on_key_pressed(k)
function keymap.on_key_pressed(k, ...)
local mk = modkey_map[k]
if mk then
keymap.modkeys[mk] = true
@@ -99,18 +100,30 @@ function keymap.on_key_pressed(k)
end
else
local stroke = key_to_stroke(k)
local commands = keymap.map[stroke]
local commands, performed = keymap.map[stroke]
if commands then
for _, cmd in ipairs(commands) do
local performed = command.perform(cmd)
performed = command.perform(cmd, ...)
if performed then break end
end
return true
return performed
end
end
return false
end
function keymap.on_mouse_wheel(delta, ...)
return not keymap.on_key_pressed("wheel" .. (delta > 0 and "up" or "down"), delta, ...)
and keymap.on_key_pressed("wheel", delta, ...)
end
function keymap.on_mouse_pressed(button, x, y, clicks)
local click_number = (((clicks - 1) % config.max_clicks) + 1)
return not (keymap.on_key_pressed(click_number .. button:sub(1,1) .. "click", x, y, clicks) or
keymap.on_key_pressed(button:sub(1,1) .. "click", x, y, clicks) or
keymap.on_key_pressed(click_number .. "click", x, y, clicks) or
keymap.on_key_pressed("click", x, y, clicks))
end
function keymap.on_key_released(k)
local mk = modkey_map[k]
@@ -159,6 +172,7 @@ keymap.add_direct {
["alt+7"] = "root:switch-to-tab-7",
["alt+8"] = "root:switch-to-tab-8",
["alt+9"] = "root:switch-to-tab-9",
["wheel"] = "root:scroll",
["ctrl+f"] = "find-replace:find",
["ctrl+r"] = "find-replace:replace",
@@ -219,6 +233,11 @@ keymap.add_direct {
["pageup"] = "doc:move-to-previous-page",
["pagedown"] = "doc:move-to-next-page",
["shift+1lclick"] = "doc:select-to-cursor",
["ctrl+1lclick"] = "doc:split-cursor",
["1lclick"] = "doc:set-cursor",
["2lclick"] = "doc:set-cursor-word",
["3lclick"] = "doc:set-cursor-line",
["shift+left"] = "doc:select-to-previous-char",
["shift+right"] = "doc:select-to-next-char",
["shift+up"] = "doc:select-to-previous-line",