view: handle setting fullscreen in configure()
This commit is contained in:
parent
2669a615b6
commit
bd99428766
@ -167,16 +167,10 @@ pub fn applyPending(self: *Self) void {
|
|||||||
self.pending.box = self.float_box;
|
self.pending.box = self.float_box;
|
||||||
|
|
||||||
// If switching to fullscreen set the dimensions to the full area of the output
|
// If switching to fullscreen set the dimensions to the full area of the output
|
||||||
if (!self.current.fullscreen and self.pending.fullscreen) {
|
if (!self.current.fullscreen and self.pending.fullscreen)
|
||||||
self.pending.box = Box.fromWlrBox(
|
self.pending.box = Box.fromWlrBox(
|
||||||
c.wlr_output_layout_get_box(self.output.root.wlr_output_layout, self.output.wlr_output).*,
|
c.wlr_output_layout_get_box(self.output.root.wlr_output_layout, self.output.wlr_output).*,
|
||||||
);
|
);
|
||||||
// TODO: move this to configure
|
|
||||||
switch (self.impl) {
|
|
||||||
.xdg_toplevel => |xdg_toplevel| xdg_toplevel.setFullscreen(self.pending.fullscreen),
|
|
||||||
.xwayland_view => |xwayland_view| xwayland_view.setFullscreen(self.pending.fullscreen),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If switching from fullscreen to layout, arrange the output to get
|
// If switching from fullscreen to layout, arrange the output to get
|
||||||
// assigned the proper size.
|
// assigned the proper size.
|
||||||
|
@ -32,10 +32,6 @@ pub fn configure(self: Self) void {
|
|||||||
unreachable;
|
unreachable;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setFullscreen(self: Self, fullscreen: bool) void {
|
|
||||||
unreachable;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn close(self: Self) void {
|
pub fn close(self: Self) void {
|
||||||
unreachable;
|
unreachable;
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,7 @@ pub fn needsConfigure(self: Self) bool {
|
|||||||
pub fn configure(self: Self) void {
|
pub fn configure(self: Self) void {
|
||||||
const state = &self.view.pending;
|
const state = &self.view.pending;
|
||||||
_ = c.wlr_xdg_toplevel_set_activated(self.wlr_xdg_surface, state.focus != 0);
|
_ = c.wlr_xdg_toplevel_set_activated(self.wlr_xdg_surface, state.focus != 0);
|
||||||
|
_ = c.wlr_xdg_toplevel_set_fullscreen(self.wlr_xdg_surface, state.fullscreen);
|
||||||
self.view.pending_serial = c.wlr_xdg_toplevel_set_size(
|
self.view.pending_serial = c.wlr_xdg_toplevel_set_size(
|
||||||
self.wlr_xdg_surface,
|
self.wlr_xdg_surface,
|
||||||
state.box.width,
|
state.box.width,
|
||||||
@ -89,10 +90,6 @@ pub fn configure(self: Self) void {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setFullscreen(self: Self, fullscreen: bool) void {
|
|
||||||
_ = c.wlr_xdg_toplevel_set_fullscreen(self.wlr_xdg_surface, fullscreen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Close the view. This will lead to the unmap and destroy events being sent
|
/// Close the view. This will lead to the unmap and destroy events being sent
|
||||||
pub fn close(self: Self) void {
|
pub fn close(self: Self) void {
|
||||||
c.wlr_xdg_toplevel_send_close(self.wlr_xdg_surface);
|
c.wlr_xdg_toplevel_send_close(self.wlr_xdg_surface);
|
||||||
|
@ -66,6 +66,7 @@ pub fn needsConfigure(self: Self) bool {
|
|||||||
/// Apply pending state
|
/// Apply pending state
|
||||||
pub fn configure(self: Self) void {
|
pub fn configure(self: Self) void {
|
||||||
const state = &self.view.pending;
|
const state = &self.view.pending;
|
||||||
|
c.wlr_xwayland_surface_set_fullscreen(self.wlr_xwayland_surface, state.fullscreen);
|
||||||
c.wlr_xwayland_surface_configure(
|
c.wlr_xwayland_surface_configure(
|
||||||
self.wlr_xwayland_surface,
|
self.wlr_xwayland_surface,
|
||||||
@intCast(i16, state.box.x),
|
@intCast(i16, state.box.x),
|
||||||
@ -81,10 +82,6 @@ pub fn configure(self: Self) void {
|
|||||||
self.view.pending_serial = 0x66666666;
|
self.view.pending_serial = 0x66666666;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setFullscreen(self: Self, fullscreen: bool) void {
|
|
||||||
c.wlr_xwayland_surface_set_fullscreen(self.wlr_xwayland_surface, fullscreen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Close the view. This will lead to the unmap and destroy events being sent
|
/// Close the view. This will lead to the unmap and destroy events being sent
|
||||||
pub fn close(self: Self) void {
|
pub fn close(self: Self) void {
|
||||||
c.wlr_xwayland_surface_close(self.wlr_xwayland_surface);
|
c.wlr_xwayland_surface_close(self.wlr_xwayland_surface);
|
||||||
|
Loading…
Reference in New Issue
Block a user