command/focus-view: add -skip-floating
This commit is contained in:
parent
6491310e12
commit
b77b42f0d6
@ -50,10 +50,12 @@ necessarily disjunct), an analogy to workspaces.
|
|||||||
Focus the next or previous output, the closest output in any direction
|
Focus the next or previous output, the closest output in any direction
|
||||||
or an output by name.
|
or an output by name.
|
||||||
|
|
||||||
*focus-view* *next*|*previous*|*up*|*down*|*left*|*right*
|
*focus-view* [*-skip-floating*] *next*|*previous*|*up*|*down*|*left*|*right*
|
||||||
Focus the next or previous view in the stack or the closest view in
|
Focus the next or previous view in the stack or the closest view in
|
||||||
any direction.
|
any direction.
|
||||||
|
|
||||||
|
- *-skip-floating*: Skip floating views, only focusing tiled ones.
|
||||||
|
|
||||||
*move* *up*|*down*|*left*|*right* _delta_
|
*move* *up*|*down*|*left*|*right* _delta_
|
||||||
Move the focused view in the specified direction by _delta_ logical
|
Move the focused view in the specified direction by _delta_ logical
|
||||||
pixels. The view will be set to floating.
|
pixels. The view will be set to floating.
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const assert = std.debug.assert;
|
const assert = std.debug.assert;
|
||||||
const wlr = @import("wlroots");
|
const wlr = @import("wlroots");
|
||||||
|
const flags = @import("flags");
|
||||||
|
|
||||||
const server = &@import("../main.zig").server;
|
const server = &@import("../main.zig").server;
|
||||||
|
|
||||||
@ -34,10 +35,19 @@ pub fn focusView(
|
|||||||
args: []const [:0]const u8,
|
args: []const [:0]const u8,
|
||||||
_: *?[]const u8,
|
_: *?[]const u8,
|
||||||
) Error!void {
|
) Error!void {
|
||||||
if (args.len < 2) return Error.NotEnoughArguments;
|
const result = flags.parser([:0]const u8, &.{
|
||||||
if (args.len > 2) return Error.TooManyArguments;
|
.{ .name = "skip-floating", .kind = .boolean },
|
||||||
|
}).parse(args[1..]) catch {
|
||||||
|
return error.InvalidValue;
|
||||||
|
};
|
||||||
|
if (result.args.len < 1) return Error.NotEnoughArguments;
|
||||||
|
if (result.args.len > 1) return Error.TooManyArguments;
|
||||||
|
|
||||||
if (try getTarget(seat, args[1], .all)) |target| {
|
if (try getTarget(
|
||||||
|
seat,
|
||||||
|
result.args[0],
|
||||||
|
if (result.flags.@"skip-floating") .skip_float else .all,
|
||||||
|
)) |target| {
|
||||||
assert(!target.pending.fullscreen);
|
assert(!target.pending.fullscreen);
|
||||||
seat.focus(target);
|
seat.focus(target);
|
||||||
server.root.applyPending();
|
server.root.applyPending();
|
||||||
|
Loading…
Reference in New Issue
Block a user