[mutter] window: Make should_be_on_all_workspaces() handle being headless
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] window: Make should_be_on_all_workspaces() handle being headless
- Date: Fri, 29 Sep 2017 14:36:05 +0000 (UTC)
commit 2c85bb41782069ab400e20885f5a05b3fe7c440f
Author: Jonas Ådahl <jadahl gmail com>
Date: Mon Sep 25 15:10:58 2017 -0400
window: Make should_be_on_all_workspaces() handle being headless
Also adds a soft assert to meta_window_is_on_primary_monitor() to make
it easier to spot when callers might want to handle headless
in a certain way.
https://bugzilla.gnome.org/show_bug.cgi?id=730551
src/core/window.c | 25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index b9c07ec..1fc483d 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -2933,6 +2933,8 @@ meta_window_is_monitor_sized (MetaWindow *window)
gboolean
meta_window_is_on_primary_monitor (MetaWindow *window)
{
+ g_return_val_if_fail (window->monitor, FALSE);
+
return window->monitor->is_primary;
}
@@ -4543,13 +4545,22 @@ set_workspace_state (MetaWindow *window,
static gboolean
should_be_on_all_workspaces (MetaWindow *window)
{
- return
- window->always_sticky ||
- window->on_all_workspaces_requested ||
- window->override_redirect ||
- (meta_prefs_get_workspaces_only_on_primary () &&
- !window->unmanaging &&
- !meta_window_is_on_primary_monitor (window));
+ if (window->always_sticky)
+ return TRUE;
+
+ if (window->on_all_workspaces_requested)
+ return TRUE;
+
+ if (window->override_redirect)
+ return TRUE;
+
+ if (meta_prefs_get_workspaces_only_on_primary () &&
+ !window->unmanaging &&
+ window->monitor &&
+ !meta_window_is_on_primary_monitor (window))
+ return TRUE;
+
+ return FALSE;
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]