summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElijah Newren <newren@gmail.com>2005-05-26 17:15:56 +0000
committerElijah Newren <newren@src.gnome.org>2005-05-26 17:15:56 +0000
commiteb46b01e97e0111c096fb60953de26fcb8779e87 (patch)
treea3a95c35864558330884979a205cd927aeec5435
parentb71671f94fb184f8929caa23dbe937f622597f2f (diff)
downloadmetacity-eb46b01e97e0111c096fb60953de26fcb8779e87.tar.gz
put all transients of the new window, if any exist, in the calc_showing
2005-05-26 Elijah Newren <newren@gmail.com> * src/window.c: (meta_window_new_with_attrs): put all transients of the new window, if any exist, in the calc_showing queue. Fixes #303284.
-rw-r--r--ChangeLog6
-rw-r--r--src/window.c9
2 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 4afe8df4..601a4262 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-26 Elijah Newren <newren@gmail.com>
+
+ * src/window.c: (meta_window_new_with_attrs): put all transients
+ of the new window, if any exist, in the calc_showing queue. Fixes
+ #303284.
+
2005-04-11 Elijah Newren <newren@gmail.com>
* configure.in: post-release version bump to 2.10.2
diff --git a/src/window.c b/src/window.c
index 445224a2..d605b4fc 100644
--- a/src/window.c
+++ b/src/window.c
@@ -106,6 +106,9 @@ static void meta_window_update_icon_now (MetaWindow *window);
void meta_window_unqueue_update_icon (MetaWindow *window);
void meta_window_flush_update_icon (MetaWindow *window);
+static gboolean queue_calc_showing_func (MetaWindow *window,
+ void *data);
+
static void meta_window_apply_session_info (MetaWindow *window,
const MetaWindowSessionInfo *info);
@@ -720,6 +723,12 @@ meta_window_new_with_attrs (MetaDisplay *display,
maybe_leave_show_desktop_mode (window);
meta_window_queue_calc_showing (window);
+ /* See bug 303284; a transient of the given window can already exist, in which
+ * case we think it should probably be shown.
+ */
+ meta_window_foreach_transient (window,
+ queue_calc_showing_func,
+ NULL);
meta_error_trap_pop (display, FALSE); /* pop the XSync()-reducing trap */
meta_display_ungrab (display);