aboutsummaryrefslogtreecommitdiff
path: root/src/layout/monitor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout/monitor.rs')
-rw-r--r--src/layout/monitor.rs60
1 files changed, 36 insertions, 24 deletions
diff --git a/src/layout/monitor.rs b/src/layout/monitor.rs
index 7bfc1084..844e932d 100644
--- a/src/layout/monitor.rs
+++ b/src/layout/monitor.rs
@@ -530,14 +530,18 @@ impl<W: LayoutElement> Monitor<W> {
return;
};
- self.add_window(
- new_idx,
- removed.tile.into_window(),
- true,
- removed.width,
- removed.is_full_width,
- removed.is_floating,
- );
+ if removed.is_floating {
+ self.add_floating_tile(new_idx, removed.tile, None, true);
+ } else {
+ self.add_tile(
+ new_idx,
+ None,
+ removed.tile,
+ true,
+ removed.width,
+ removed.is_full_width,
+ );
+ }
}
pub fn move_to_workspace_down(&mut self) {
@@ -553,14 +557,18 @@ impl<W: LayoutElement> Monitor<W> {
return;
};
- self.add_window(
- new_idx,
- removed.tile.into_window(),
- true,
- removed.width,
- removed.is_full_width,
- removed.is_floating,
- );
+ if removed.is_floating {
+ self.add_floating_tile(new_idx, removed.tile, None, true);
+ } else {
+ self.add_tile(
+ new_idx,
+ None,
+ removed.tile,
+ true,
+ removed.width,
+ removed.is_full_width,
+ );
+ }
}
pub fn move_to_workspace(&mut self, window: Option<&W::Id>, idx: usize) {
@@ -592,14 +600,18 @@ impl<W: LayoutElement> Monitor<W> {
return;
};
- self.add_window(
- new_idx,
- removed.tile.into_window(),
- activate,
- removed.width,
- removed.is_full_width,
- removed.is_floating,
- );
+ if removed.is_floating {
+ self.add_floating_tile(new_idx, removed.tile, None, activate);
+ } else {
+ self.add_tile(
+ new_idx,
+ None,
+ removed.tile,
+ activate,
+ removed.width,
+ removed.is_full_width,
+ );
+ }
if self.workspace_switch.is_none() {
self.clean_up_workspaces();