*** iconbox.c.orig 2009-01-12 22:35:29.000000000 +0100 --- iconbox.c 2009-03-16 16:24:44.000000000 +0100 *************** *** 84,89 **** --- 84,111 ---- * Iconbox * * -------------------------------------------------------------------- */ + /* set the icon geometry for iconify animation (Compiz) */ + static void + icon_update_geometry (Icon *icon) + { + GdkWindow *parent; + int x, y, width, height; + + parent = gtk_widget_get_parent_window(icon->button); + + if (parent) { + gdk_window_get_origin(parent, &x, &y); + + x += icon->button->allocation.x; + y += icon->button->allocation.y; + width = icon->button->allocation.width; + height = icon->button->allocation.height; + + wnck_window_set_icon_geometry (icon->window, x, y, width, height); + } + } + + /* icons */ static void update_visibility (Icon *icon, WnckWorkspace *optional_active_ws) *************** *** 120,125 **** --- 142,148 ---- || wnck_window_or_transient_needs_attention (icon->window)) { gtk_widget_show (icon->button); + icon_update_geometry(icon); } else { *************** *** 501,506 **** --- 524,531 ---- gtk_box_pack_start (GTK_BOX (ib->iconbox), icon->button, FALSE, FALSE, 0); + icon_update_geometry (icon); + if (wnck_window_or_transient_needs_attention (window)) { queue_urgent_timeout (icon);