--- xfce4-panel-4.12.0.orig/plugins/tasklist/tasklist-widget.c 2015-02-26 21:32:17.000000000 +0100 +++ xfce4-panel-4.12.0/plugins/tasklist/tasklist-widget.c 2015-06-23 12:01:47.935828987 +0200 @@ -334,6 +334,7 @@ static void xfce_tasklist_group_button_add_window (XfceTasklistChild *group_child, XfceTasklistChild *window_child); static XfceTasklistChild *xfce_tasklist_group_button_new (WnckClassGroup *class_group, + guint unique_id, XfceTasklist *tasklist); /* potential public functions */ @@ -1683,7 +1684,7 @@ if (group_child == NULL) { /* create group button for this window and add it */ - group_child = xfce_tasklist_group_button_new (child->class_group, tasklist); + group_child = xfce_tasklist_group_button_new (child->class_group, child->unique_id, tasklist); g_hash_table_insert (tasklist->class_groups, g_object_ref (child->class_group), group_child); @@ -3104,14 +3105,17 @@ XfceTasklist *tasklist) { XfceTasklistChild *child; - static guint unique_id_counter = 0; + /* The buttons with unique_id equal 0 are the wrong buttons. Start unique_id_counter from 1. + This is besser for debugging. + */ + static guint unique_id_counter = 1; panel_return_val_if_fail (XFCE_IS_TASKLIST (tasklist), NULL); panel_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); /* avoid integer overflows */ if (G_UNLIKELY (unique_id_counter >= G_MAXUINT)) - unique_id_counter = 0; + unique_id_counter = 1; child = xfce_tasklist_child_new (tasklist); child->type = CHILD_TYPE_WINDOW; @@ -3668,9 +3672,9 @@ } - static XfceTasklistChild * xfce_tasklist_group_button_new (WnckClassGroup *class_group, + guint unique_id, XfceTasklist *tasklist) { XfceTasklistChild *child; @@ -3681,6 +3685,7 @@ child = xfce_tasklist_child_new (tasklist); child->type = CHILD_TYPE_GROUP; child->class_group = class_group; + child->unique_id = unique_id; /* note that the same signals should be in the proxy menu item too */ g_signal_connect (G_OBJECT (child->button), "button-press-event",