# ChangeLog for x11-libs/libwnck
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/libwnck/ChangeLog,v 1.69 2004/12/28 22:00:31 ciaranm Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libwnck/ChangeLog,v 1.70 2004/12/29 04:25:29 obz Exp $
+
+*libwnck-2.8.1-r1 (29 Dec 2004)
+
+ 29 Dec 2004; Mike Gardiner <obz@gentoo.org>
+ +files/libwnck-2.8-multimon-tasklist.patch, +libwnck-2.8.1-r1.ebuild:
+ New revision, with the multimon-tasklist patch, see bug #70235
28 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> :
Change encoding to UTF-8 for GLEP 31 compliance
+MD5 a8d5b5183e0e021d8bc84c5a2760b4e2 libwnck-2.8.0.1.ebuild 717
MD5 cea3a1dfb8792e63c955f80a5c19651c libwnck-2.6.2.1.ebuild 678
-MD5 13e19b108e3d84a6b40089b8c1f18d89 ChangeLog 7698
+MD5 7b641ea5de8f0ace519ccdc780866150 libwnck-2.8.1-r1.ebuild 893
MD5 1c0ec2da1df446c5b4eee038359eec2b libwnck-2.8.1.ebuild 698
-MD5 a8d5b5183e0e021d8bc84c5a2760b4e2 libwnck-2.8.0.1.ebuild 717
+MD5 6f7c9df4ff61167a78c4ea0e0a6de431 ChangeLog 7911
MD5 03ad2e6c4ab41244af1015a8bbb0b39f metadata.xml 158
-MD5 548c282858e185dd6171be66b720553c files/libwnck-2.4.0.1-pager.patch 2949
-MD5 dc43936b329f383f88acde71e0c0b8e8 files/digest-libwnck-2.8.0.1 68
+MD5 18b803208062c76b65f948628222f371 files/libwnck-2.8-multimon-tasklist.patch 3045
MD5 8b45d7a5f492aceec471824f1ea20c91 files/digest-libwnck-2.6.2.1 68
+MD5 dc43936b329f383f88acde71e0c0b8e8 files/digest-libwnck-2.8.0.1 68
MD5 e38978396ff7cef1114dc8f5d3937c99 files/digest-libwnck-2.8.1 66
+MD5 548c282858e185dd6171be66b720553c files/libwnck-2.4.0.1-pager.patch 2949
+MD5 e38978396ff7cef1114dc8f5d3937c99 files/digest-libwnck-2.8.1-r1 66
--- /dev/null
+diff -ur libwnck-2.8.1/libwnck/tasklist.c libwnck-2.8.1-patched/libwnck/tasklist.c
+--- libwnck-2.8.1/libwnck/tasklist.c 2004-09-21 22:07:25.000000000 +0800
++++ libwnck-2.8.1-patched/libwnck/tasklist.c 2004-12-29 12:15:02.720282672 +0800
+@@ -261,6 +261,11 @@
+ static gpointer task_parent_class;
+ static gpointer tasklist_parent_class;
+
++/* Keep track of tasklist instances so we can decide
++ * whether to show windows from all monitors
++ */
++static GSList *tasklist_instances;
++
+ /**
+ * eel_gtk_label_make_bold.
+ *
+@@ -517,6 +522,11 @@
+ atk_obj = gtk_widget_get_accessible (widget);
+ atk_object_set_name (atk_obj, _("Window List"));
+ atk_object_set_description (atk_obj, _("Tool to switch between visible windows"));
++
++ tasklist_instances = g_slist_append (tasklist_instances, tasklist);
++ g_slist_foreach( tasklist_instances,
++ (GFunc) wnck_tasklist_update_lists,
++ NULL);
+ }
+
+ static void
+@@ -546,6 +556,11 @@
+
+ tasklist = WNCK_TASKLIST (object);
+
++ tasklist_instances = g_slist_remove (tasklist_instances, tasklist);
++ g_slist_foreach (tasklist_instances,
++ (GFunc) wnck_tasklist_update_lists,
++ NULL);
++
+ if (tasklist->priv->free_icon_loader_data != NULL)
+ (* tasklist->priv->free_icon_loader_data) (tasklist->priv->icon_loader_data);
+
+@@ -1498,26 +1513,42 @@
+ GList *l;
+ WnckTask *win_task;
+ WnckTask *class_group_task;
+- gint monitor_num;
+
+ wnck_tasklist_free_tasks (tasklist);
+
+- windows = wnck_screen_get_windows (tasklist->priv->screen);
+-
+ if (GTK_WIDGET (tasklist)->window != NULL)
+ {
+- monitor_num = gdk_screen_get_monitor_at_window (_wnck_screen_get_gdk_screen (tasklist->priv->screen),
+- GTK_WIDGET (tasklist)->window);
+- if (monitor_num != tasklist->priv->monitor_num)
+- {
+- tasklist->priv->monitor_num = monitor_num;
+- gdk_screen_get_monitor_geometry (_wnck_screen_get_gdk_screen (tasklist->priv->screen),
+- tasklist->priv->monitor_num,
+- &tasklist->priv->monitor_geometry);
++
++ /*
++ * only show windows from this monitor if there is more than one tasklist running
++ */
++ if (tasklist_instances == NULL ||
++ tasklist_instances->next == NULL)
++ {
++ tasklist->priv->monitor_num = -1;
+ }
++ else
++ {
++ int monitor_num;
++
++ monitor_num = gdk_screen_get_monitor_at_window (
++ _wnck_screen_get_gdk_screen (tasklist->priv->screen),
++ GTK_WIDGET (tasklist)->window);
++
++ if (monitor_num != tasklist->priv->monitor_num)
++ {
++ tasklist->priv->monitor_num = monitor_num;
++ gdk_screen_get_monitor_geometry (
++ _wnck_screen_get_gdk_screen (
++ tasklist->priv->screen),
++ tasklist->priv->monitor_num,
++ &tasklist->priv->monitor_geometry);
++ }
++ }
++
+ }
+
+- l = windows;
++ l = windows = wnck_screen_get_windows (tasklist->priv->screen);
+ while (l != NULL)
+ {
+ win = WNCK_WINDOW (l->data);
--- /dev/null
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libwnck/libwnck-2.8.1-r1.ebuild,v 1.1 2004/12/29 04:25:29 obz Exp $
+
+inherit gnome2 eutils
+
+DESCRIPTION="A window navigation construction kit"
+HOMEPAGE="http://www.gnome.org/"
+LICENSE="GPL-2"
+
+SLOT="0"
+KEYWORDS="~x86 ~ppc ~alpha ~sparc ~hppa ~amd64 ~ia64 ~mips ~ppc64 ~arm"
+IUSE="doc"
+
+RDEPEND=">=x11-libs/gtk+-2.1
+ >=x11-libs/startup-notification-0.4
+ amd64? ( || ( x11-base/xorg-x11 >=x11-base/xfree-4.3.0-r6 ) )"
+
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+ >=dev-util/pkgconfig-0.12
+ doc? ( >=dev-util/gtk-doc-1 )"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+src_unpack() {
+
+ unpack ${A}
+ # Apply the patch to show all monitor's applications
+ # if there is only one tasklist. see bug #70235
+ epatch ${FILESDIR}/${PN}-2.8-multimon-tasklist.patch
+
+}