From fa88002ba41d2edec25dd7ffdee9719fbb928fc0 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Thu, 17 Jul 2025 10:28:30 -0700 Subject: [PATCH] tiling: Add placeholder when tree is empty --- src/shell/layout/tiling/mod.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/shell/layout/tiling/mod.rs b/src/shell/layout/tiling/mod.rs index 56ad36e0..79dde6f4 100644 --- a/src/shell/layout/tiling/mod.rs +++ b/src/shell/layout/tiling/mod.rs @@ -3320,6 +3320,25 @@ impl TilingLayout { let last_overview_hover = &mut self.last_overview_hover; let tree = &self.queue.trees.back().unwrap().0; let Some(root) = tree.root_node_id() else { + if matches!( + overview.active_trigger(), + Some(Trigger::Pointer(_) | Trigger::Touch(_)) + ) { + if location_f64.is_some() { + let mut tree = tree.copy_clone(); + tree.insert( + Node::new(Data::Placeholder { + id: Id::new(), + last_geometry: Rectangle::from_size((100, 100).into()), + type_: PlaceholderType::DropZone, + }), + InsertBehavior::AsRoot, + ) + .unwrap(); + let blocker = TilingLayout::update_positions(&self.output, &mut tree, gaps); + self.queue.push_tree(tree, ANIMATION_DURATION, blocker); + } + } return; };