aboutsummaryrefslogtreecommitdiff
path: root/sway/commands/input/scroll_factor.c
diff options
context:
space:
mode:
authorBrian Ashworth <RedSoxFan@users.noreply.github.com>2018-11-18 14:05:03 -0500
committerGitHub <noreply@github.com>2018-11-18 14:05:03 -0500
commitb2c5248ad36a7a5cf342aa44a21a0956c025c43f (patch)
tree265d4ea923f1329d1e7661c0f92a242337318d58 /sway/commands/input/scroll_factor.c
parentb87250425fe13149e41b346f15c5cf808f376438 (diff)
parent70bc4c3ab6c408850543d827f788ef310fdb269c (diff)
downloadsway-b2c5248ad36a7a5cf342aa44a21a0956c025c43f.tar.xz
Merge pull request #3018 from sxmichaels/add-scroll-factor
Add scroll factor input command.
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 @@
+#include <errno.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include "sway/config.h"
+#include "sway/commands.h"
+#include "sway/input/input-manager.h"
+#include "util.h"
+
+struct cmd_results *input_cmd_scroll_factor(int argc, char **argv) {
+ struct cmd_results *error = NULL;
+ if ((error = checkarg(argc, "scroll_factor", EXPECTED_AT_LEAST, 1))) {
+ return error;
+ }
+ struct input_config *ic = config->handler_context.input_config;
+ if (!ic) {
+ return cmd_results_new(CMD_FAILURE,
+ "scroll_factor", "No input device defined.");
+ }
+
+ float scroll_factor = parse_float(argv[0]);
+ if (isnan(scroll_factor)) {
+ return cmd_results_new(CMD_INVALID, "scroll_factor",
+ "Invalid scroll factor; expected float.");
+ } else if (scroll_factor < 0) {
+ return cmd_results_new(CMD_INVALID, "scroll_factor",
+ "Scroll factor cannot be negative.");
+ }
+ ic->scroll_factor = scroll_factor;
+
+ return cmd_results_new(CMD_SUCCESS, NULL, NULL);
+}