Update window->visible_to_compositor before calling into compositor

To deal with reentrancy from compositor plugins doing things like
moving windows between workspaces in an effect callback, update
the visible_to_compositor flag before calling into the compositor.

https://bugzilla.gnome.org/show_bug.cgi?id=613124
This commit is contained in:
Owen W. Taylor 2011-01-04 11:43:02 -05:00
parent 78092a404f
commit 0a821d2341

View File

@ -2678,6 +2678,8 @@ meta_window_show (MetaWindow *window)
if (!window->visible_to_compositor)
{
window->visible_to_compositor = TRUE;
if (window->display->compositor)
{
MetaCompEffect effect = META_COMP_EFFECT_NONE;
@ -2697,8 +2699,6 @@ meta_window_show (MetaWindow *window)
meta_compositor_show_window (window->display->compositor,
window, effect);
}
window->visible_to_compositor = TRUE;
}
/* We don't want to worry about all cases from inside
@ -2769,6 +2769,8 @@ meta_window_hide (MetaWindow *window)
if (window->visible_to_compositor)
{
window->visible_to_compositor = FALSE;
if (window->display->compositor)
{
MetaCompEffect effect = META_COMP_EFFECT_NONE;
@ -2788,8 +2790,6 @@ meta_window_hide (MetaWindow *window)
meta_compositor_hide_window (window->display->compositor,
window, effect);
}
window->visible_to_compositor = FALSE;
}
did_hide = FALSE;