aboutsummaryrefslogtreecommitdiff
path: root/src/command/send_to_output.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/send_to_output.zig')
-rw-r--r--src/command/send_to_output.zig62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/command/send_to_output.zig b/src/command/send_to_output.zig
deleted file mode 100644
index de92f6f..0000000
--- a/src/command/send_to_output.zig
+++ /dev/null
@@ -1,62 +0,0 @@
-// This file is part of river, a dynamic tiling wayland compositor.
-//
-// Copyright 2020 Isaac Freund
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// 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 Error = @import("../command.zig").Error;
-const Direction = @import("../command.zig").Direction;
-const Output = @import("../Output.zig");
-const Seat = @import("../Seat.zig");
-
-/// Send the focused view to the the next or the previous output, depending on
-/// the bool passed. Does nothing if there is only one output.
-pub fn sendToOutput(
- 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;
-
- const direction = try Direction.parse(args[1]);
- const root = &seat.input_manager.server.root;
-
- if (seat.focused_view) |view| {
- // If the noop output is focused, there is nowhere to send the view
- if (view.output == &root.noop_output) {
- std.debug.assert(root.outputs.len == 0);
- return;
- }
-
- // Send to the next/preg output in the list if there is one, else wrap
- const current_node = @fieldParentPtr(std.TailQueue(Output).Node, "data", view.output);
- const destination_output = switch (direction) {
- .Next => if (current_node.next) |node| &node.data else &root.outputs.first.?.data,
- .Prev => if (current_node.prev) |node| &node.data else &root.outputs.last.?.data,
- };
-
- // Move the view to the target output
- view.sendToOutput(destination_output);
-
- // Handle the change and focus whatever's next in the focus stack
- root.arrange();
- seat.focus(null);
- }
-}