View: fix checks to respect client side move/resize
This commit is contained in:
parent
b986196118
commit
4b0c5acc46
3 changed files with 5 additions and 5 deletions
|
@ -311,7 +311,7 @@ fn handleCommit(listener: *wl.Listener(*wlr.Surface), surface: *wlr.Surface) voi
|
||||||
view.surface_box = new_box;
|
view.surface_box = new_box;
|
||||||
// If the client has decided to resize itself and the view is floating,
|
// If the client has decided to resize itself and the view is floating,
|
||||||
// then respect that resize.
|
// then respect that resize.
|
||||||
if (view.pending.float and size_changed) {
|
if ((self.view.pending.float or self.view.output.pending.layout == null) and size_changed) {
|
||||||
view.pending.box.width = new_box.width;
|
view.pending.box.width = new_box.width;
|
||||||
view.pending.box.height = new_box.height;
|
view.pending.box.height = new_box.height;
|
||||||
view.applyPending();
|
view.applyPending();
|
||||||
|
@ -348,7 +348,7 @@ fn handleRequestMove(
|
||||||
) void {
|
) void {
|
||||||
const self = @fieldParentPtr(Self, "request_move", listener);
|
const self = @fieldParentPtr(Self, "request_move", listener);
|
||||||
const seat = @intToPtr(*Seat, event.seat.seat.data);
|
const seat = @intToPtr(*Seat, event.seat.seat.data);
|
||||||
if ((self.view.pending.float or self.view.output.current.layout == null) and !self.view.pending.fullscreen)
|
if ((self.view.pending.float or self.view.output.pending.layout == null) and !self.view.pending.fullscreen)
|
||||||
seat.cursor.enterMode(.move, self.view);
|
seat.cursor.enterMode(.move, self.view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -356,7 +356,7 @@ fn handleRequestMove(
|
||||||
fn handleRequestResize(listener: *wl.Listener(*wlr.XdgToplevel.event.Resize), event: *wlr.XdgToplevel.event.Resize) void {
|
fn handleRequestResize(listener: *wl.Listener(*wlr.XdgToplevel.event.Resize), event: *wlr.XdgToplevel.event.Resize) void {
|
||||||
const self = @fieldParentPtr(Self, "request_resize", listener);
|
const self = @fieldParentPtr(Self, "request_resize", listener);
|
||||||
const seat = @intToPtr(*Seat, event.seat.seat.data);
|
const seat = @intToPtr(*Seat, event.seat.seat.data);
|
||||||
if ((self.view.pending.float or self.view.output.current.layout == null) and !self.view.pending.fullscreen)
|
if ((self.view.pending.float or self.view.output.pending.layout == null) and !self.view.pending.fullscreen)
|
||||||
seat.cursor.enterMode(.resize, self.view);
|
seat.cursor.enterMode(.resize, self.view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,7 @@ fn apply(view: *View) void {
|
||||||
// dimensions are set by a layout client. If however the views are
|
// dimensions are set by a layout client. If however the views are
|
||||||
// unarranged, leave them as non-floating so the next active layout can
|
// unarranged, leave them as non-floating so the next active layout can
|
||||||
// affect them.
|
// affect them.
|
||||||
if (view.output.current.layout != null)
|
if (view.output.pending.layout != null)
|
||||||
view.pending.float = true;
|
view.pending.float = true;
|
||||||
|
|
||||||
view.float_box = view.pending.box;
|
view.float_box = view.pending.box;
|
||||||
|
|
|
@ -38,7 +38,7 @@ pub fn toggleFloat(
|
||||||
// If views are unarranged, don't allow changing the views float status.
|
// If views are unarranged, don't allow changing the views float status.
|
||||||
// It would just lead to confusing because this state would not be
|
// It would just lead to confusing because this state would not be
|
||||||
// visible immediately, only after a layout is connected.
|
// visible immediately, only after a layout is connected.
|
||||||
if (view.output.current.layout == null)
|
if (view.output.pending.layout == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Don't float fullscreen views
|
// Don't float fullscreen views
|
||||||
|
|
Loading…
Reference in a new issue