From 21f2468d67e11eff7ede0d85fa6f4ab5c4f7de84 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 21 Nov 2019 23:01:56 +0100 Subject: input: add text produced by key to script key events Particularly for "any_unicode" mappings, so they don't have to special-case keys like '#' and ' ', which are normally mapped to symbolic names for input.conf reasons. (Though admittedly, this is a pretty minor thing, since API users could map these manually.) --- player/lua/defaults.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'player/lua') diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua index 127e92036b..38b6a9d04b 100644 --- a/player/lua/defaults.lua +++ b/player/lua/defaults.lua @@ -54,10 +54,10 @@ local function reserve_binding() return "__keybinding" .. tostring(message_id) end -local function dispatch_key_binding(name, state, key_name) +local function dispatch_key_binding(name, state, key_name, key_text) local fn = dispatch_key_bindings[name] if fn then - fn(name, state, key_name) + fn(name, state, key_name, key_text) end end @@ -176,11 +176,15 @@ local function add_binding(attrs, key, name, fn, rp) ["r"] = "repeat", ["p"] = "press", } - key_cb = function(name, state, key_name) + key_cb = function(name, state, key_name, key_text) + if key_text == "" then + key_text = nil + end fn({ event = key_states[state:sub(1, 1)] or "unknown", is_mouse = state:sub(2, 2) == "m", key_name = key_name, + key_text = key_text, }) end msg_cb = function() -- cgit v1.2.3