summaryrefslogtreecommitdiffstats
path: root/sway/commands/input/scroll_factor.c
diff options
context:
space:
mode:
authorLibravatar Spencer Michaels <spencer@smichaels.net>2018-11-17 14:31:33 -0500
committerLibravatar Spencer Michaels <spencer@smichaels.net>2018-11-18 13:49:30 -0500
commit70bc4c3ab6c408850543d827f788ef310fdb269c (patch)
tree265d4ea923f1329d1e7661c0f92a242337318d58 /sway/commands/input/scroll_factor.c
parentMerge pull request #3147 from emersion/set10 (diff)
downloadsway-70bc4c3ab6c408850543d827f788ef310fdb269c.tar.gz
sway-70bc4c3ab6c408850543d827f788ef310fdb269c.tar.zst
sway-70bc4c3ab6c408850543d827f788ef310fdb269c.zip
Add scroll factor config option.
Diffstat (limited to 'sway/commands/input/scroll_factor.c')
-rw-r--r--sway/commands/input/scroll_factor.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/sway/commands/input/scroll_factor.c b/sway/commands/input/scroll_factor.c
new file mode 100644
index 00000000..52d943b0
--- /dev/null
+++ b/sway/commands/input/scroll_factor.c
@@ -0,0 +1,32 @@
1#include <errno.h>
2#include <math.h>
3#include <stdlib.h>
4#include <string.h>
5#include "sway/config.h"
6#include "sway/commands.h"
7#include "sway/input/input-manager.h"
8#include "util.h"
9
10struct cmd_results *input_cmd_scroll_factor(int argc, char **argv) {
11 struct cmd_results *error = NULL;
12 if ((error = checkarg(argc, "scroll_factor", EXPECTED_AT_LEAST, 1))) {
13 return error;
14 }
15 struct input_config *ic = config->handler_context.input_config;
16 if (!ic) {
17 return cmd_results_new(CMD_FAILURE,
18 "scroll_factor", "No input device defined.");
19 }
20
21 float scroll_factor = parse_float(argv[0]);
22 if (isnan(scroll_factor)) {
23 return cmd_results_new(CMD_INVALID, "scroll_factor",
24 "Invalid scroll factor; expected float.");
25 } else if (scroll_factor < 0) {
26 return cmd_results_new(CMD_INVALID, "scroll_factor",
27 "Scroll factor cannot be negative.");
28 }
29 ic->scroll_factor = scroll_factor;
30
31 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
32}