diff options
| author | Isaac Freund <ifreund@ifreund.xyz> | 2020-05-31 23:56:25 +0200 |
|---|---|---|
| committer | Isaac Freund <ifreund@ifreund.xyz> | 2020-05-31 23:56:25 +0200 |
| commit | e43bb78160d403a0d77759fcc2bc50fc0fc0337e (patch) | |
| tree | 9b8705ab22db93a651e02c3b7d2369ef10e1f27d /src/command | |
| parent | 0d29a64327cc2cc5000742cb5d39905bcf1c7a95 (diff) | |
| download | river-e43bb78160d403a0d77759fcc2bc50fc0fc0337e.tar.gz river-e43bb78160d403a0d77759fcc2bc50fc0fc0337e.tar.xz | |
Store modes by id
Diffstat (limited to 'src/command')
| -rw-r--r-- | src/command/mode.zig | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/command/mode.zig b/src/command/mode.zig index fb03bb5..364e399 100644 --- a/src/command/mode.zig +++ b/src/command/mode.zig @@ -31,5 +31,13 @@ pub fn mode( if (args.len > 2) return Error.TooManyArguments; const config = seat.input_manager.server.config; - seat.mode = config.getMode(args[1]); + const target_mode = args[1]; + seat.mode_id = config.mode_to_id.getValue(target_mode) orelse { + failure_message.* = try std.fmt.allocPrint( + allocator, + "cannot enter non-existant mode '{}'", + .{target_mode}, + ); + return Error.CommandFailed; + }; } |
