[mutter] session: use initial workspace if no workspace set
- From: Olivier Fourdan <ofourdan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] session: use initial workspace if no workspace set
- Date: Thu, 25 Jan 2018 10:02:31 +0000 (UTC)
commit fbd5a74a0b3b8af3a263021058b9b37c19fdc15e
Author: Olivier Fourdan <ofourdan redhat com>
Date: Tue Jan 23 11:43:09 2018 +0100
session: use initial workspace if no workspace set
Having “on_all_workspaces_requested” FALSE on a window does not imply a
workspace is set.
If the X11 window is placed on a secondary monitor while workspaces
applies on primary monitor only (“workspaces-only-on-primary” set) then
“on_all_workspaces_requested” is FALSE while “on_all_workspaces“ is TRUE
and the associated workspace is NULL, leading to a crash when saving the
gnome-shell/mutter session.
So if no workspace is set, use the “initial_workspace” instead to avoid
a NULL pointer dereference.
https://bugzilla.gnome.org/show_bug.cgi?id=792818
src/x11/session.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/src/x11/session.c b/src/x11/session.c
index af64270a6..8b2a89f1c 100644
--- a/src/x11/session.c
+++ b/src/x11/session.c
@@ -950,7 +950,10 @@ save_state (void)
fputs (" <sticky/>\n", outfile);
} else {
int n;
- n = meta_workspace_index (window->workspace);
+ if (window->workspace)
+ n = meta_workspace_index (window->workspace);
+ else
+ n = window->initial_workspace;
fprintf (outfile,
" <workspace index=\"%d\"/>\n", n);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]