aboutsummaryrefslogtreecommitdiff
path: root/src/layout/workspace.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-02-03 09:45:26 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-02-03 09:45:26 +0400
commit798d9c55dfaae46ab09e9176f5c3dd8fa21f478a (patch)
treeaa9ca995b34a3251b82e70d25a1bec7aa7289845 /src/layout/workspace.rs
parent05613eed1efc724277a08f763e19e218b1d697ff (diff)
downloadniri-798d9c55dfaae46ab09e9176f5c3dd8fa21f478a.tar.gz
niri-798d9c55dfaae46ab09e9176f5c3dd8fa21f478a.tar.bz2
niri-798d9c55dfaae46ab09e9176f5c3dd8fa21f478a.zip
Support fullscreen for new windows
Diffstat (limited to 'src/layout/workspace.rs')
-rw-r--r--src/layout/workspace.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index 7324e93e..73a87376 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -330,6 +330,10 @@ impl<W: LayoutElement> Workspace<W> {
}
}
+ pub fn view_size(&self) -> Size<i32, Logical> {
+ self.view_size
+ }
+
pub fn update_output_scale_transform(&mut self) {
let Some(output) = self.output.as_ref() else {
return;
@@ -351,7 +355,7 @@ impl<W: LayoutElement> Workspace<W> {
))
}
- pub fn configure_new_window(&self, window: &Window) {
+ pub fn new_window_size(&self) -> Size<i32, Logical> {
let width = if let Some(width) = self.options.default_width {
let mut width = width.resolve(&self.options, self.working_area.size.w);
if !self.options.border.off {
@@ -367,8 +371,11 @@ impl<W: LayoutElement> Workspace<W> {
height -= self.options.border.width as i32 * 2;
}
- let size = Size::from((width, max(height, 1)));
+ Size::from((width, max(height, 1)))
+ }
+ pub fn configure_new_window(&self, window: &Window) {
+ let size = self.new_window_size();
let bounds = self.toplevel_bounds();
if let Some(output) = self.output.as_ref() {
@@ -1151,8 +1158,14 @@ impl<W: LayoutElement> Column<W> {
options,
};
+ let is_pending_fullscreen = window.is_pending_fullscreen();
+
rv.add_window(window);
+ if is_pending_fullscreen {
+ rv.set_fullscreen(true);
+ }
+
rv
}