Take future borders into account for surface size
This commit is contained in:
parent
149dd488a9
commit
ea88cca35f
3 changed files with 15 additions and 10 deletions
|
@ -109,10 +109,10 @@ pub const Output = struct {
|
||||||
// and need to render that buffer until the transaction is complete.
|
// and need to render that buffer until the transaction is complete.
|
||||||
if (view.stashed_buffer) |buffer| {
|
if (view.stashed_buffer) |buffer| {
|
||||||
var box = c.wlr_box{
|
var box = c.wlr_box{
|
||||||
.x = view.current_box.x,
|
.x = view.current_box.x + @intCast(i32, view.root.border_width),
|
||||||
.y = view.current_box.y,
|
.y = view.current_box.y + @intCast(i32, view.root.border_width),
|
||||||
.width = @intCast(c_int, view.current_box.width),
|
.width = @intCast(c_int, view.current_box.width - view.root.border_width * 2),
|
||||||
.height = @intCast(c_int, view.current_box.height),
|
.height = @intCast(c_int, view.current_box.height - view.root.border_width * 2),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Scale the box to the output's current scaling factor
|
// Scale the box to the output's current scaling factor
|
||||||
|
@ -176,14 +176,14 @@ pub const Output = struct {
|
||||||
var ox: f64 = 0.0;
|
var ox: f64 = 0.0;
|
||||||
var oy: f64 = 0.0;
|
var oy: f64 = 0.0;
|
||||||
c.wlr_output_layout_output_coords(view.root.wlr_output_layout, output, &ox, &oy);
|
c.wlr_output_layout_output_coords(view.root.wlr_output_layout, output, &ox, &oy);
|
||||||
ox += @intToFloat(f64, view.current_box.x + sx);
|
ox += @intToFloat(f64, view.current_box.x + @intCast(i32, view.root.border_width) + sx);
|
||||||
oy += @intToFloat(f64, view.current_box.y + sy);
|
oy += @intToFloat(f64, view.current_box.y + @intCast(i32, view.root.border_width) + sy);
|
||||||
|
|
||||||
var box = c.wlr_box{
|
var box = c.wlr_box{
|
||||||
.x = @floatToInt(c_int, ox),
|
.x = @floatToInt(c_int, ox),
|
||||||
.y = @floatToInt(c_int, oy),
|
.y = @floatToInt(c_int, oy),
|
||||||
.width = @intCast(c_int, surface.current.width),
|
.width = surface.current.width,
|
||||||
.height = @intCast(c_int, surface.current.height),
|
.height = surface.current.height,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Scale the box to the output's current scaling factor
|
// Scale the box to the output's current scaling factor
|
||||||
|
|
|
@ -34,6 +34,9 @@ pub const Root = struct {
|
||||||
/// Percentage of the total screen that the master section takes up.
|
/// Percentage of the total screen that the master section takes up.
|
||||||
master_factor: f64,
|
master_factor: f64,
|
||||||
|
|
||||||
|
/// Width of borders in pixels
|
||||||
|
border_width: u32,
|
||||||
|
|
||||||
/// Number of pending configures sent in the current transaction.
|
/// Number of pending configures sent in the current transaction.
|
||||||
/// A value of 0 means there is no current transaction.
|
/// A value of 0 means there is no current transaction.
|
||||||
pending_configures: u32,
|
pending_configures: u32,
|
||||||
|
@ -63,6 +66,8 @@ pub const Root = struct {
|
||||||
|
|
||||||
self.master_factor = 0.6;
|
self.master_factor = 0.6;
|
||||||
|
|
||||||
|
self.border_width = 4;
|
||||||
|
|
||||||
self.pending_configures = 0;
|
self.pending_configures = 0;
|
||||||
|
|
||||||
self.transaction_timer = null;
|
self.transaction_timer = null;
|
||||||
|
|
|
@ -93,8 +93,8 @@ pub const View = struct {
|
||||||
if (self.pending_box) |pending_box| {
|
if (self.pending_box) |pending_box| {
|
||||||
self.pending_serial = c.wlr_xdg_toplevel_set_size(
|
self.pending_serial = c.wlr_xdg_toplevel_set_size(
|
||||||
self.wlr_xdg_surface,
|
self.wlr_xdg_surface,
|
||||||
pending_box.width,
|
pending_box.width - self.root.border_width * 2,
|
||||||
pending_box.height,
|
pending_box.height - self.root.border_width * 2,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// TODO: log warning
|
// TODO: log warning
|
||||||
|
|
Loading…
Reference in a new issue