rpms/libwnck/FC-3 libwnck-2.8.1-fix-tasklist-on-xinerama.patch, NONE, 1.1 libwnck.spec, 1.19, 1.20
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Thu Apr 7 19:18:39 UTC 2005
Update of /cvs/dist/rpms/libwnck/FC-3
In directory cvs.devel.redhat.com:/tmp/cvs-serv12318
Modified Files:
libwnck.spec
Added Files:
libwnck-2.8.1-fix-tasklist-on-xinerama.patch
Log Message:
- Apply backport to fix tasklist with Xinerama (bug 138874)
libwnck-2.8.1-fix-tasklist-on-xinerama.patch:
tasklist.c | 51 +++++++++++++++++++++++++++++++++++++++------------
1 files changed, 39 insertions(+), 12 deletions(-)
--- NEW FILE libwnck-2.8.1-fix-tasklist-on-xinerama.patch ---
diff -u -p -r1.62 -r1.65
--- libwnck-2.8.1/libwnck/tasklist.c 3 Dec 2004 20:30:09 -0000 1.62
+++ libwnck-2.8.1/libwnck/tasklist.c 15 Dec 2004 10:25:32 -0000 1.65
@@ -261,4 +261,11 @@ static void wnck_tasklist_check_end_
static gpointer task_parent_class;
static gpointer tasklist_parent_class;
+/*
+ * Keep track of all tasklist instances so we can decide
+ * whether to show windows from all monitors in the
+ * tasklist
+ */
+static GSList *tasklist_instances;
+
/**
@@ -517,6 +524,11 @@ wnck_tasklist_init (WnckTasklist *taskli
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
@@ -545,6 +557,11 @@ wnck_tasklist_finalize (GObject *object)
WnckTasklist *tasklist;
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 +1517,36 @@ wnck_tasklist_update_lists (WnckTasklist
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);
Index: libwnck.spec
===================================================================
RCS file: /cvs/dist/rpms/libwnck/FC-3/libwnck.spec,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- libwnck.spec 12 Oct 2004 17:25:48 -0000 1.19
+++ libwnck.spec 7 Apr 2005 19:18:37 -0000 1.20
@@ -6,7 +6,7 @@
Summary: Window Navigator Construction Kit
Name: libwnck
Version: 2.8.1
-Release: 1
+Release: 1.fc3
URL: ftp://ftp.gnome.org
Source0: %{name}-%{version}.tar.bz2
License: LGPL
@@ -22,6 +22,8 @@
BuildRequires: pango-devel >= %{pango_version}
BuildRequires: startup-notification-devel >= %{startup_notification_version}
+Patch0: libwnck-2.8.1-fix-tasklist-on-xinerama.patch
+
%description
libwnck (pronounced "libwink") is used to implement pagers, tasklists,
@@ -48,6 +50,8 @@
%prep
%setup -q
+%patch0 -p1 -b .fix-tasklist-on-xinerama
+
%build
@@ -86,6 +90,9 @@
%{_datadir}/gtk-doc/html/libwnck
%changelog
+* Thu Apr 7 2006 Ray Strode <rstrode at redhat.com> 2.8.1-1.fc3
+- Apply backport to fix tasklist with Xinerama (bug 138874)
+
* Tue Oct 12 2004 Mark McLoughlin <markmc at redhat.com> 2.8.1-1
- Update to 2.8.1
More information about the fedora-cvs-commits
mailing list