Skip to content

Commit be23617

Browse files
ammen99lilydjwg
authored andcommitted
xdg-shell: raise the whole popup tree together
so that their relative order is kept. fixes #2566.
1 parent 12ba346 commit be23617

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/view/xdg-shell.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff 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
{

0 commit comments

Comments
 (0)