diff --git a/ChangeLog b/ChangeLog index 4afe8df44..601a4262d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-05-26 Elijah Newren + + * 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 * configure.in: post-release version bump to 2.10.2 diff --git a/src/window.c b/src/window.c index 445224a2b..d605b4fc2 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);