Make sure windows are kept on top of the panel during minimize.

Wed May 24 22:15:01 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c (do_effect): Make sure windows are kept on top
        of the panel during minimize.
This commit is contained in:
Søren Sandmann 2006-05-25 02:15:49 +00:00 committed by Søren Sandmann Pedersen
parent ab1adf6c06
commit 6dfb56cc77
4 changed files with 22 additions and 6 deletions

View File

@ -1,3 +1,8 @@
Wed May 24 22:15:01 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (do_effect): Make sure windows are kept on top
of the panel during minimize.
Wed May 24 21:17:59 2006 Søren Sandmann <sandmann@redhat.com> Wed May 24 21:17:59 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (do_effect): Shrink the window instead of * src/compositor.c (do_effect): Shrink the window instead of

View File

@ -1062,7 +1062,7 @@ run_animation_01 (gpointer data)
} }
void void
meta_comp_window_run_minimize (MetaWindow *window, meta_comp_window_run_minimize (MetaCompWindow *window,
MetaEffect *effect) MetaEffect *effect)
{ {
MiniInfo *info = g_new (MiniInfo, 1); MiniInfo *info = g_new (MiniInfo, 1);

View File

@ -50,7 +50,7 @@ void meta_comp_window_restack (MetaCompWindow *comp_window,
void meta_comp_window_freeze_stack (MetaCompWindow *comp_window); void meta_comp_window_freeze_stack (MetaCompWindow *comp_window);
void meta_comp_window_thaw_stack (MetaCompWindow *comp_window); void meta_comp_window_thaw_stack (MetaCompWindow *comp_window);
gboolean meta_comp_window_stack_frozen (MetaCompWindow *comp_window); gboolean meta_comp_window_stack_frozen (MetaCompWindow *comp_window);
void meta_comp_window_run_minimize (MetaWindow *window, void meta_comp_window_run_minimize (MetaCompWindow *window,
MetaEffect *effect); MetaEffect *effect);
#if 0 #if 0

View File

@ -118,9 +118,20 @@ do_effect (MetaEffect *effect,
{ {
MetaCompScreen *screen = meta_comp_screen_get_by_xwindow ( MetaCompScreen *screen = meta_comp_screen_get_by_xwindow (
get_xid (effect->u.minimize.window)); get_xid (effect->u.minimize.window));
MetaCompWindow *window = MetaCompWindow *window;
if (!effect->u.minimize.window->frame)
{
meta_effect_end (effect);
return;
}
window =
meta_comp_screen_lookup_window (screen, effect->u.minimize.window->frame->xwindow); meta_comp_screen_lookup_window (screen, effect->u.minimize.window->frame->xwindow);
/* FIXME: a hack to make sure the window starts on top of the panel */
meta_comp_screen_raise_window (screen, effect->u.minimize.window->frame->xwindow);
meta_comp_window_run_minimize (window, effect); meta_comp_window_run_minimize (window, effect);
#if 0 #if 0
meta_comp_window_explode (window, effect); meta_comp_window_explode (window, effect);