This fixes a problem of overaggressively grouping windows in the tasklist with our default size 24 panel. See bnc #148840 for details and a screenshot. Index: libwnck/tasklist.c =================================================================== RCS file: /cvs/gnome/libwnck/libwnck/tasklist.c,v retrieving revision 1.87 diff -u -p -u -r1.87 tasklist.c --- libwnck/tasklist.c 3 Oct 2005 19:42:46 -0000 1.87 +++ libwnck/tasklist.c 26 Apr 2006 21:45:51 -0000 @@ -185,6 +185,9 @@ struct _WnckTasklistPrivate gint minimum_width; gint minimum_height; + gint last_width; + gint last_height; + WnckLoadIconFunction icon_loader; void *icon_loader_data; GDestroyNotify free_icon_loader_data; @@ -694,6 +697,9 @@ wnck_tasklist_init (WnckTasklist *taskli tasklist->priv->minimum_width = DEFAULT_WIDTH; tasklist->priv->minimum_height = DEFAULT_HEIGHT; + tasklist->priv->last_width = -1; + tasklist->priv->last_height = -1; + tasklist->priv->idle_callback_tag = 0; tasklist->priv->monitor_num = -1; @@ -1170,8 +1176,15 @@ wnck_tasklist_size_request (GtkWidget requisition->width = tasklist->priv->minimum_width; requisition->height = tasklist->priv->minimum_height; - fake_allocation.width = requisition->width; - fake_allocation.height = requisition->height; + if (tasklist->priv->last_width != -1) + fake_allocation.width = tasklist->priv->last_width; + else + fake_allocation.width = requisition->width; + + if (tasklist->priv->last_height != -1) + fake_allocation.height = tasklist->priv->last_height; + else + fake_allocation.height = requisition->height; array = g_array_new (FALSE, FALSE, sizeof (int)); @@ -1298,6 +1311,9 @@ wnck_tasklist_size_allocate (GtkWidget int grouping_limit; tasklist = WNCK_TASKLIST (widget); + + tasklist->priv->last_width = allocation->width; + tasklist->priv->last_height = allocation->height; n_windows = g_list_length (tasklist->priv->windows); n_startup_sequences = g_list_length (tasklist->priv->startup_sequences);