diff options
Diffstat (limited to 'x11-misc/superswitcher/files')
-rw-r--r-- | x11-misc/superswitcher/files/superswitcher-0.6-glib-single-include.patch | 27 | ||||
-rw-r--r-- | x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch | 62 |
2 files changed, 89 insertions, 0 deletions
diff --git a/x11-misc/superswitcher/files/superswitcher-0.6-glib-single-include.patch b/x11-misc/superswitcher/files/superswitcher-0.6-glib-single-include.patch new file mode 100644 index 000000000000..fe3249982870 --- /dev/null +++ b/x11-misc/superswitcher/files/superswitcher-0.6-glib-single-include.patch @@ -0,0 +1,27 @@ +Index: superswitcher-0.6/src/dbus-object.h +=================================================================== +--- superswitcher-0.6.orig/src/dbus-object.h ++++ superswitcher-0.6/src/dbus-object.h +@@ -4,7 +4,7 @@ + #ifndef SUPERSWITCHER_DBUS_OBJECT_H + #define SUPERSWITCHER_DBUS_OBJECT_H + +-#include <glib/gtypes.h> ++#include <glib.h> + + #include "forward_declarations.h" + +Index: superswitcher-0.6/src/forward_declarations.h +=================================================================== +--- superswitcher-0.6.orig/src/forward_declarations.h ++++ superswitcher-0.6/src/forward_declarations.h +@@ -18,8 +18,7 @@ typedef struct _SSXineramaScreen SSXiner + #define ABNORMAL_EXIT_CODE_ANOTHER_INSTANCE_IS_RUNNING 1 + #define ABNORMAL_EXIT_CODE_UNKNOWN_COMMAND_LINE_OPTION 2 + +-#include <glib/gerror.h> +-#include <glib/gtypes.h> ++#include <glib.h> + gboolean superswitcher_hide_popup (void *, GError **); + gboolean superswitcher_show_popup (void *, GError **); + gboolean superswitcher_toggle_popup (void *, GError **); diff --git a/x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch b/x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch new file mode 100644 index 000000000000..90919a57485b --- /dev/null +++ b/x11-misc/superswitcher/files/superswitcher-0.6-wnck-workspace.patch @@ -0,0 +1,62 @@ +It seems like wnck_window_is_skip_pager isn't all we need to check. + +--- superswitcher/src/screen.c ++++ superswitcher/src/screen.c +@@ -505,6 +505,7 @@ + static SSWindow * + add_window_to_screen (SSScreen *screen, WnckWindow *wnck_window) + { ++ WnckWorkspace *wnck_workspace; + SSWindow *window; + SSWorkspace *workspace; + int n; +@@ -513,7 +514,13 @@ + return NULL; + } + +- n = wnck_workspace_get_number (wnck_window_get_workspace (wnck_window)); ++ wnck_workspace = wnck_window_get_workspace (wnck_window); ++ ++ if (wnck_workspace == NULL) { ++ return NULL; ++ } ++ ++ n = wnck_workspace_get_number (wnck_workspace); + 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)); + } |