[mutter/gnome-3-8] window: Make sure override_redirect window have correct monitor info
- From: Adel Gadllah <agadllah src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gnome-3-8] window: Make sure override_redirect window have correct monitor info
- Date: Mon, 24 Jun 2013 15:33:15 +0000 (UTC)
commit de6d9591c42074c503ccdb9fddbfa4165777e5b4
Author: Adel Gadllah <adel gadllah gmail com>
Date: Mon Jun 24 09:49:44 2013 +0200
window: Make sure override_redirect window have correct monitor info
We need to update window->monitor on override_redirect windows as well, other
wise they may end up with an invalid struct which triggers and assert when
meta_window_is_monitor_sized is called.
https://bugzilla.gnome.org/show_bug.cgi?id=702564
src/core/screen.c | 2 +-
src/core/window.c | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/src/core/screen.c b/src/core/screen.c
index 200724a..6db3ea3 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -3039,7 +3039,7 @@ meta_screen_resize (MetaScreen *screen,
/* Fix up monitor for all windows on this screen */
windows = meta_display_list_windows (screen->display,
- META_LIST_DEFAULT);
+ META_LIST_INCLUDE_OVERRIDE_REDIRECT);
for (tmp = windows; tmp != NULL; tmp = tmp->next)
{
MetaWindow *window = tmp->data;
diff --git a/src/core/window.c b/src/core/window.c
index 3145851..ae3c694 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -145,6 +145,8 @@ static void meta_window_move_between_rects (MetaWindow *window,
static void unmaximize_window_before_freeing (MetaWindow *window);
static void unminimize_window_and_all_transient_parents (MetaWindow *window);
+static void meta_window_update_monitor (MetaWindow *window);
+
/* Idle handlers for the three queues (run with meta_later_add()). The
* "data" parameter in each case will be a GINT_TO_POINTER of the
* index into the queue arrays to use.
@@ -4788,6 +4790,12 @@ meta_window_update_for_monitors_changed (MetaWindow *window)
if (window->type == META_WINDOW_DESKTOP)
return;
+ if (window->override_redirect)
+ {
+ meta_window_update_monitor (window);
+ return;
+ }
+
old = window->monitor;
/* Start on primary */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]