Add layout variable to Output class
This variable in controls which layout is chosen when arrangeViews() is called. The default is LeftMaster
This commit is contained in:
parent
fd3f48c1a7
commit
3c5eaec50b
@ -52,11 +52,23 @@ master_count: u32,
|
|||||||
/// 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,
|
||||||
|
|
||||||
|
/// Current layout of the output.
|
||||||
|
layout: Layouts,
|
||||||
|
|
||||||
// All listeners for this output, in alphabetical order
|
// All listeners for this output, in alphabetical order
|
||||||
listen_destroy: c.wl_listener,
|
listen_destroy: c.wl_listener,
|
||||||
listen_frame: c.wl_listener,
|
listen_frame: c.wl_listener,
|
||||||
listen_mode: c.wl_listener,
|
listen_mode: c.wl_listener,
|
||||||
|
|
||||||
|
// All possible layouts.
|
||||||
|
pub const Layouts = enum {
|
||||||
|
TopMaster,
|
||||||
|
RightMaster,
|
||||||
|
BottomMaster,
|
||||||
|
LeftMaster,
|
||||||
|
Full,
|
||||||
|
};
|
||||||
|
|
||||||
pub fn init(self: *Self, root: *Root, wlr_output: *c.wlr_output) !void {
|
pub fn init(self: *Self, root: *Root, wlr_output: *c.wlr_output) !void {
|
||||||
// Some backends don't have modes. DRM+KMS does, and we need to set a mode
|
// Some backends don't have modes. DRM+KMS does, and we need to set a mode
|
||||||
// before we can use the output. The mode is a tuple of (width, height,
|
// before we can use the output. The mode is a tuple of (width, height,
|
||||||
@ -92,6 +104,9 @@ pub fn init(self: *Self, root: *Root, wlr_output: *c.wlr_output) !void {
|
|||||||
|
|
||||||
self.master_factor = 0.6;
|
self.master_factor = 0.6;
|
||||||
|
|
||||||
|
// LeftMaster is the default layout for all outputs
|
||||||
|
self.layout = Layout.LeftMaster;
|
||||||
|
|
||||||
// Set up listeners
|
// Set up listeners
|
||||||
self.listen_destroy.notify = handleDestroy;
|
self.listen_destroy.notify = handleDestroy;
|
||||||
c.wl_signal_add(&wlr_output.events.destroy, &self.listen_destroy);
|
c.wl_signal_add(&wlr_output.events.destroy, &self.listen_destroy);
|
||||||
@ -393,13 +408,13 @@ pub fn arrangeViews(self: *Self) void {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO layout switching mechanism
|
switch (self.layout) {
|
||||||
//layoutFull(self, visible_count, output_tags);
|
.Full => layoutFull(self, visible_count, output_tags),
|
||||||
//layoutTopMaster(self, visible_count, output_tags);
|
.TopMaster => layoutTopMaster(self, visible_count, output_tags),
|
||||||
//layoutRightMaster(self, visible_count, output_tags);
|
.RightMaster => layoutRightMaster(self, visible_count, output_tags),
|
||||||
//layoutBottomMaster(self, visible_count, output_tags);
|
.BottomMaster => layoutBottomMaster(self, visible_count, output_tags),
|
||||||
//layoutLeftMaster(self, visible_count, output_tags);
|
.LeftMaster => layoutLeftMaster(self, visible_count, output_tags),
|
||||||
layoutFull(self, visible_count, output_tags);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Arrange all layer surfaces of this output and addjust the usable aread
|
/// Arrange all layer surfaces of this output and addjust the usable aread
|
||||||
|
Loading…
Reference in New Issue
Block a user