aboutsummaryrefslogtreecommitdiff
path: root/src/layout/workspace.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout/workspace.rs')
-rw-r--r--src/layout/workspace.rs16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index 2a033a2c..dfcfb68b 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -308,7 +308,7 @@ impl<W: LayoutElement> Workspace<W> {
fn enter_output_for_window(&self, window: &W) {
if let Some(output) = &self.output {
- prepare_for_output(window, output);
+ set_preferred_scale_transform(window, output);
window.output_enter(output);
}
}
@@ -330,6 +330,15 @@ impl<W: LayoutElement> Workspace<W> {
}
}
+ pub fn update_output_scale_transform(&mut self) {
+ let Some(output) = self.output.as_ref() else {
+ return;
+ };
+ for window in self.windows() {
+ set_preferred_scale_transform(window, output);
+ }
+ }
+
fn toplevel_bounds(&self) -> Size<i32, Logical> {
let mut border = 0;
if !self.options.border.off {
@@ -363,7 +372,7 @@ impl<W: LayoutElement> Workspace<W> {
let bounds = self.toplevel_bounds();
if let Some(output) = self.output.as_ref() {
- prepare_for_output(window, output);
+ set_preferred_scale_transform(window, output);
}
window.toplevel().with_pending_state(|state| {
@@ -1626,7 +1635,8 @@ fn compute_new_view_offset(
}
}
-fn prepare_for_output(window: &impl LayoutElement, output: &Output) {
+fn set_preferred_scale_transform(window: &impl LayoutElement, output: &Output) {
+ // FIXME: cache this on the workspace.
let scale = output.current_scale().integer_scale();
let transform = output.current_transform();
window.set_preferred_scale_transform(scale, transform);