SHA256
1
0
forked from pool/libwnck
libwnck/libwnck-realistic-layout.patch

60 lines
2.0 KiB
Diff
Raw Normal View History

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);