summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2024-08-14 21:32:03 +1000
committerMaxime Coste <mawww@kakoune.org>2024-08-14 21:32:03 +1000
commit203e3704d892f1eeac32fe35c97846f350184ec5 (patch)
tree67f10addf13e88949b6d5477ec86105005a096ee /src
parenta553ed5aa16eb20832f3e0dcdf98a39fd96e9f4a (diff)
Fix json-ui scroll support
Add cursor coordinate parameters, and fix encoding to match the new one.
Diffstat (limited to 'src')
-rw-r--r--src/json_ui.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/json_ui.cc b/src/json_ui.cc
index 9d694c56..7f645605 100644
--- a/src/json_ui.cc
+++ b/src/json_ui.cc
@@ -284,12 +284,12 @@ void JsonUI::eval_json(const Value& json)
}
else if (method == "scroll")
{
- if (params.size() != 1)
- throw invalid_rpc_request("scroll needs an amount");
- else if (not params[0].is_a<int>())
- throw invalid_rpc_request("scroll amount is not an integer");
- m_on_key({Key::Modifiers::Scroll, (Codepoint)params[0].as<int>()});
-
+ if (params.size() != 3)
+ throw invalid_rpc_request("scroll needs an amount and coordinates");
+ else if (not params[0].is_a<int>() or not params[1].is_a<int>() or not params[2].is_a<int>())
+ throw invalid_rpc_request("scroll parameters are not integers");
+ m_on_key({Key::Modifiers::Scroll | (Key::Modifiers)(params[0].as<int>() << 16),
+ encode_coord({params[1].as<int>(), params[2].as<int>()})});
}
else if (method == "menu_select")
{