File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed
Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -192,15 +192,22 @@ void wayfire_xdg_popup::map()
192192
193193 update_position ();
194194
195- wf::scene::layer parent_layer = wf::get_view_layer (popup_parent.lock ())
195+ auto parent = popup_parent.lock ();
196+ wf::scene::layer parent_layer = wf::get_view_layer (parent)
196197 .value_or (wf::scene::layer::WORKSPACE);
197198 auto target_layer = wf::scene::layer::UNMANAGED;
198199 if ((int )parent_layer > (int )wf::scene::layer::WORKSPACE)
199200 {
200201 target_layer = parent_layer;
201202 }
202203
203- wf::scene::readd_front (get_output ()->node_for_layer (target_layer), get_root_node ());
204+ wf::scene::floating_inner_ptr target_parent_node = get_output ()->node_for_layer (target_layer);
205+ if (std::dynamic_pointer_cast<wayfire_xdg_popup>(parent))
206+ {
207+ target_parent_node = parent->get_root_node ();
208+ }
209+
210+ wf::scene::readd_front (target_parent_node, get_root_node ());
204211
205212 if (!popup->base ->initial_commit )
206213 {
You can’t perform that action at this time.
0 commit comments