[mutter/wip/carlosg/no-ws-for-transient] core: Only set same workspace than transient-for if it has a workspace
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/no-ws-for-transient] core: Only set same workspace than transient-for if it has a workspace
- Date: Mon, 5 Aug 2019 17:44:07 +0000 (UTC)
commit ecf5b234562d5c626a2086f4e1e9b8b625788969
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon Aug 5 18:29:54 2019 +0200
core: Only set same workspace than transient-for if it has a workspace
Commit 09bab98b1e tried to avoid several workspace changes while in
window construction, but it missed a case:
If we have a window on a secondary monitor with no workspaces enabled
(so it implicitly gets on_all_workspaces = TRUE without requesting it)
and trigger the creation of a second window that has the first as
transient-for, it would first try to set the first workspace than the
transient-for window and then fallback to all/current workspace.
Now we only try to set the same workspace than the transient-for window,
but it gets none as neither is on a single workspace, nor did really
request to be on all workspaces.
Tweak the first condition so we still set the workspace once, but
observe that case and end up falling back to the same workspace we used
to.
Fixes crashes when opening transient X11 dialogs in the secondary monitor.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/714
src/core/window.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index 88e9d26e2..b63d48927 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1286,7 +1286,9 @@ _meta_window_shared_new (MetaDisplay *display,
*/
if (!window->override_redirect && window->workspace == NULL)
{
- if (window->transient_for != NULL)
+ if (window->transient_for != NULL &&
+ (window->transient_for->on_all_workspaces_requested ||
+ window->transient_for->workspace))
{
meta_topic (META_DEBUG_PLACEMENT,
"Putting window %s on same workspace as parent %s\n",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]