aboutsummaryrefslogtreecommitdiff
path: root/src/command/layout.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/layout.zig')
-rw-r--r--src/command/layout.zig17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/command/layout.zig b/src/command/layout.zig
index f8e21ad..4a21050 100644
--- a/src/command/layout.zig
+++ b/src/command/layout.zig
@@ -15,14 +15,23 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
+const std = @import("std");
+
const c = @import("../c.zig");
-const Arg = @import("../Command.zig").Arg;
+const Error = @import("../command.zig").Error;
const Seat = @import("../Seat.zig");
-pub fn layout(seat: *Seat, arg: Arg) void {
- const layout_name = arg.str;
- seat.focused_output.layout = seat.focused_output.getLayoutByName(layout_name);
+pub fn layout(
+ allocator: *std.mem.Allocator,
+ seat: *Seat,
+ args: []const []const u8,
+ failure_message: *[]const u8,
+) Error!void {
+ if (args.len < 2) return Error.NotEnoughArguments;
+ if (args.len > 2) return Error.TooManyArguments;
+
+ seat.focused_output.layout = seat.focused_output.getLayoutByName(args[1]);
seat.focused_output.arrangeViews();
seat.input_manager.server.root.startTransaction();
}