summaryrefslogtreecommitdiffstats
path: root/media-sound/xmms/files/xmms-ds-gentoofix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media-sound/xmms/files/xmms-ds-gentoofix.patch')
-rw-r--r--media-sound/xmms/files/xmms-ds-gentoofix.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/media-sound/xmms/files/xmms-ds-gentoofix.patch b/media-sound/xmms/files/xmms-ds-gentoofix.patch
new file mode 100644
index 0000000..7a1ee35
--- /dev/null
+++ b/media-sound/xmms/files/xmms-ds-gentoofix.patch
@@ -0,0 +1,36 @@
+diff -dPNur xmms-1.2.10-gentoo/xmms/main.c xmms-1.2.10-new/xmms/main.c
+--- xmms-1.2.10-gentoo/xmms/main.c 2005-12-29 02:48:54.000000000 +0000
++++ xmms-1.2.10-new/xmms/main.c 2005-12-29 02:51:06.000000000 +0000
+@@ -3017,6 +3017,8 @@
+
+ }
+
++static sig_atomic_t exit_flag = 0;
++
+ gint idle_func(gpointer data)
+ {
+ gint time, t, length;
+@@ -3026,6 +3028,8 @@
+
+ static GTimer *pause_timer = NULL;
+
++ if (exit_flag) mainwin_quit_cb();
++
+ if (get_input_playing())
+ {
+ GDK_THREADS_ENTER();
+@@ -3393,13 +3397,7 @@
+ /* Try to exit nicely when receiving a nice exit signal */
+ void sigterm_handler(int sig)
+ {
+- /* Original author of patch said that you should not use mainwin_quit_cb(),
+- * but his way deadlock xmms, and it anyhow just calls ctrlsocket stuff with
+- * with CMD_QUIT, which anyhow calls mainwin_quit_cb() in turn. This is not
+- * entirely clean, but works.
+- * <azarah@gentoo.org> (19 Jan 2003)
+- xmms_remote_quit(ctrlsocket_get_session_id()); */
+- mainwin_quit_cb();
++ exit_flag = 1;
+ }
+
+ static gboolean pposition_configure(GtkWidget *w, GdkEventConfigure *event, gpointer data)