New revision, with the multimon-tasklist patch, see bug #70235
authorMike Gardiner <obz@gentoo.org>
Wed, 29 Dec 2004 04:25:29 +0000 (04:25 +0000)
committerMike Gardiner <obz@gentoo.org>
Wed, 29 Dec 2004 04:25:29 +0000 (04:25 +0000)
x11-libs/libwnck/ChangeLog
x11-libs/libwnck/Manifest
x11-libs/libwnck/files/digest-libwnck-2.8.1-r1 [new file with mode: 0644]
x11-libs/libwnck/files/libwnck-2.8-multimon-tasklist.patch [new file with mode: 0644]
x11-libs/libwnck/libwnck-2.8.1-r1.ebuild [new file with mode: 0644]

index 5cadf3eaf2b0f1d32005d74bbd8cc5e6ff60ca15..7778fe9b9145cc53f81c561c2d4f8e379d7b725f 100644 (file)
@@ -1,6 +1,12 @@
 # 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
index c26cf7868649a956050a9d167da9c2db7287a32c..bc88bd48d66e78fff766fcd9b13794cd80052f2f 100644 (file)
@@ -1,9 +1,12 @@
+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
diff --git a/x11-libs/libwnck/files/digest-libwnck-2.8.1-r1 b/x11-libs/libwnck/files/digest-libwnck-2.8.1-r1
new file mode 100644 (file)
index 0000000..2589f86
--- /dev/null
@@ -0,0 +1 @@
+MD5 c0a5a8478064287e167c15e3ec0e82a1 libwnck-2.8.1.tar.bz2 396274
diff --git a/x11-libs/libwnck/files/libwnck-2.8-multimon-tasklist.patch b/x11-libs/libwnck/files/libwnck-2.8-multimon-tasklist.patch
new file mode 100644 (file)
index 0000000..57a01e0
--- /dev/null
@@ -0,0 +1,94 @@
+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);
diff --git a/x11-libs/libwnck/libwnck-2.8.1-r1.ebuild b/x11-libs/libwnck/libwnck-2.8.1-r1.ebuild
new file mode 100644 (file)
index 0000000..0b74e51
--- /dev/null
@@ -0,0 +1,33 @@
+# 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
+
+}