summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-misc')
-rw-r--r--x11-misc/superswitcher/ChangeLog6
-rw-r--r--x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch35
2 files changed, 40 insertions, 1 deletions
diff --git a/x11-misc/superswitcher/ChangeLog b/x11-misc/superswitcher/ChangeLog
index ef2988c013d7..0e214b3bd55f 100644
--- a/x11-misc/superswitcher/ChangeLog
+++ b/x11-misc/superswitcher/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for x11-misc/superswitcher
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-misc/superswitcher/ChangeLog,v 1.4 2007/10/22 16:56:11 swegener Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/superswitcher/ChangeLog,v 1.5 2007/10/23 16:54:22 swegener Exp $
+
+ 23 Oct 2007; Sven Wegener <swegener@gentoo.org>
+ files/superswitcher-0.6-wnck-workspace.patch:
+ Update patch to fix another segmentation fault.
22 Oct 2007; Sven Wegener <swegener@gentoo.org>
+files/superswitcher-0.6-wnck-workspace.patch, superswitcher-0.6.ebuild:
diff --git a/x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch b/x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch
index 94ac8c20991c..90919a57485b 100644
--- a/x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch
+++ b/x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch
@@ -25,3 +25,38 @@ It seems like wnck_window_is_skip_pager isn't all we need to check.
workspace = ss_screen_get_nth_workspace (screen, n);
window = ss_window_new (workspace, wnck_window);
+--- superswitcher/src/window.c
++++ superswitcher/src/window.c
+@@ -254,6 +254,7 @@
+ static void
+ on_workspace_changed (WnckWindow *wnck_window, gpointer data)
+ {
++ WnckWorkspace *wnck_workspace;
+ SSWindow *window;
+ SSWorkspace *old_workspace;
+ SSWorkspace *new_workspace;
+@@ -261,12 +262,19 @@
+
+ window = (SSWindow *) data;
+ old_workspace = window->workspace;
+- new_workspace_id = wnck_workspace_get_number (wnck_window_get_workspace (wnck_window));
+- new_workspace = ss_screen_get_nth_workspace (old_workspace->screen, new_workspace_id);
+-
+ ss_workspace_remove_window (old_workspace, window);
++
++ wnck_workspace = wnck_window_get_workspace (wnck_window);
++ if (wnck_workspace) {
++ new_workspace_id = wnck_workspace_get_number (wnck_workspace);
++ new_workspace = ss_screen_get_nth_workspace (old_workspace->screen, new_workspace_id);
++
++ ss_workspace_add_window (new_workspace, window);
++ window->workspace = new_workspace;
++ } else {
++ window->workspace = NULL;
++ }
++
+- window->workspace = new_workspace;
+- ss_workspace_add_window (new_workspace, window);
+ window->new_window_index = -1;
+ gtk_widget_queue_draw (gtk_widget_get_toplevel (window->widget));
+ }