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>
* src/compositor.c (do_effect): Shrink the window instead of

View File

@ -1062,7 +1062,7 @@ run_animation_01 (gpointer data)
}
void
meta_comp_window_run_minimize (MetaWindow *window,
meta_comp_window_run_minimize (MetaCompWindow *window,
MetaEffect *effect)
{
MiniInfo *info = g_new (MiniInfo, 1);
@ -1083,13 +1083,13 @@ meta_comp_window_run_minimize (MetaWindow *window,
info->button_y = effect->u.minimize.icon_rect.y;
info->button_width = effect->u.minimize.icon_rect.width;
info->button_height = effect->u.minimize.icon_rect.height;
#if 0
cm_drawable_node_set_deformation_func (node, minimize_deformation, info);
#endif
info->aspect_ratio = 1.3;
g_idle_add (run_animation_01, info);
}

View File

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

View File

@ -118,9 +118,20 @@ do_effect (MetaEffect *effect,
{
MetaCompScreen *screen = meta_comp_screen_get_by_xwindow (
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);
/* 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);
#if 0
meta_comp_window_explode (window, effect);