core: Avoid consecutive workspace changes in window construction

We first set the workspace to the transient-for parent's, and then
try to set on the current workspace. If both happen, we double the
work on adding/removing it from the workspace, and everything that
happens in result.

Should reduce some activity while typing on the Epiphany address
bar, as the animation results in a number of xdg_popup being created
and destroyed to handle the animation.

https://gitlab.gnome.org/GNOME/mutter/issues/556
This commit is contained in:
Carlos Garnacho 2019-07-19 17:48:42 +02:00 committed by Marco Trevisan (Treviño)
parent 88e855bf0a
commit a611dadc0b

View File

@ -1275,8 +1275,7 @@ _meta_window_shared_new (MetaDisplay *display,
window->transient_for->on_all_workspaces_requested,
window->transient_for->workspace);
}
if (window->on_all_workspaces)
else if (window->on_all_workspaces)
{
meta_topic (META_DEBUG_PLACEMENT,
"Putting window %s on all workspaces\n",