diff options
Diffstat (limited to 'x11-misc')
-rw-r--r-- | x11-misc/superswitcher/ChangeLog | 6 | ||||
-rw-r--r-- | x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch | 35 |
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)); + } |