summaryrefslogtreecommitdiff
path: root/media-sound/audacious/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-11-18 09:38:27 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-11-18 09:38:27 +0000
commit536c3711867ec947c1738f2c4b96f22e4863322d (patch)
tree697733f5cb713908dcf378e13fd15a798a906a91 /media-sound/audacious/files
parentf65628136faa35d0c4d3b5e7332275c7b35fcd96 (diff)
gentoo resync : 18.11.2018
Diffstat (limited to 'media-sound/audacious/files')
-rw-r--r--media-sound/audacious/files/audacious-3.10-dbus-crash.patch60
-rw-r--r--media-sound/audacious/files/audacious-3.10-ui-freeze.patch30
-rw-r--r--media-sound/audacious/files/audacious-3.10-use-after-free.patch38
-rw-r--r--media-sound/audacious/files/audacious-3.10-volume-slider-boundaries.patch25
4 files changed, 153 insertions, 0 deletions
diff --git a/media-sound/audacious/files/audacious-3.10-dbus-crash.patch b/media-sound/audacious/files/audacious-3.10-dbus-crash.patch
new file mode 100644
index 000000000000..83b9c74f98cc
--- /dev/null
+++ b/media-sound/audacious/files/audacious-3.10-dbus-crash.patch
@@ -0,0 +1,60 @@
+From 1528e780825b1fc49639ea16d332c5752051dab7 Mon Sep 17 00:00:00 2001
+From: John Lindgren <john@jlindgren.net>
+Date: Sun, 19 Aug 2018 14:12:30 -0400
+Subject: [PATCH] Fix crash when an invalid field name is sent via D-Bus.
+ Closes: #817.
+
+Regression introduced by commit 203b41f8e249.
+---
+ src/audacious/dbus-server.cc | 31 +++++++++++++++++--------------
+ 1 file changed, 17 insertions(+), 14 deletions(-)
+
+diff --git a/src/audacious/dbus-server.cc b/src/audacious/dbus-server.cc
+index 7602ace22..20a6c5839 100644
+--- a/src/audacious/dbus-server.cc
++++ b/src/audacious/dbus-server.cc
+@@ -635,27 +635,30 @@ static gboolean do_song_title (Obj * obj, Invoc * invoc, unsigned pos)
+ static gboolean do_song_tuple (Obj * obj, Invoc * invoc, unsigned pos, const char * key)
+ {
+ Tuple::Field field = Tuple::field_by_name (key);
+- Tuple tuple;
+- GVariant * var;
++ GVariant * var = nullptr;
+
+ if (field >= 0)
+- tuple = CURRENT.entry_tuple (pos);
+-
+- switch (tuple.get_value_type (field))
+ {
+- case Tuple::String:
+- var = g_variant_new_string (tuple.get_str (field));
+- break;
++ Tuple tuple = CURRENT.entry_tuple (pos);
+
+- case Tuple::Int:
+- var = g_variant_new_int32 (tuple.get_int (field));
+- break;
++ switch (tuple.get_value_type (field))
++ {
++ case Tuple::String:
++ var = g_variant_new_string (tuple.get_str (field));
++ break;
+
+- default:
+- var = g_variant_new_string ("");
+- break;
++ case Tuple::Int:
++ var = g_variant_new_int32 (tuple.get_int (field));
++ break;
++
++ default:
++ break;
++ }
+ }
+
++ if (! var)
++ var = g_variant_new_string ("");
++
+ FINISH2 (song_tuple, g_variant_new_variant (var));
+ return true;
+ }
diff --git a/media-sound/audacious/files/audacious-3.10-ui-freeze.patch b/media-sound/audacious/files/audacious-3.10-ui-freeze.patch
new file mode 100644
index 000000000000..da05bc5b0009
--- /dev/null
+++ b/media-sound/audacious/files/audacious-3.10-ui-freeze.patch
@@ -0,0 +1,30 @@
+From 8f9745a5a539e44244d5e8200c61ed443c638aad Mon Sep 17 00:00:00 2001
+From: John Lindgren <john@jlindgren.net>
+Date: Sun, 19 Aug 2018 13:47:17 -0400
+Subject: [PATCH] Prevent UI freeze when displaying song info window. Closes:
+ #822.
+
+---
+ src/libaudcore/probe.cc | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/libaudcore/probe.cc b/src/libaudcore/probe.cc
+index 5c57ef884..38cf73d96 100644
+--- a/src/libaudcore/probe.cc
++++ b/src/libaudcore/probe.cc
+@@ -242,6 +242,15 @@ EXPORT bool aud_custom_infowin (const char * filename, PluginHandle * decoder)
+ if (! strncmp (filename, "stdin://", 8))
+ return false;
+
++ // In hindsight, a flag should have been added indicating whether a
++ // plugin provides a custom info window or not. Currently, only two
++ // plugins do so. Since custom info windows are deprecated anyway,
++ // check for those two plugins explicitly and in all other cases,
++ // don't open the input file to prevent freezing the UI.
++ const char * base = aud_plugin_get_basename (decoder);
++ if (strcmp (base, "amidi-plug") && strcmp (base, "vtx"))
++ return false;
++
+ auto ip = (InputPlugin *) aud_plugin_get_header (decoder);
+ if (! ip)
+ return false;
diff --git a/media-sound/audacious/files/audacious-3.10-use-after-free.patch b/media-sound/audacious/files/audacious-3.10-use-after-free.patch
new file mode 100644
index 000000000000..8271a3d6d1b0
--- /dev/null
+++ b/media-sound/audacious/files/audacious-3.10-use-after-free.patch
@@ -0,0 +1,38 @@
+From 1d34f6799b8f5910fc6863ae96afd5ab035e830f Mon Sep 17 00:00:00 2001
+From: John Lindgren <john@jlindgren.net>
+Date: Thu, 20 Sep 2018 13:46:52 -0400
+Subject: [PATCH] audqt: Use deleteLater() to prevent use-after-free in Qt
+ event handling. Closes: #828.
+
+---
+ src/libaudqt/infopopup-qt.cc | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/libaudqt/infopopup-qt.cc b/src/libaudqt/infopopup-qt.cc
+index fdbba41d2..81dd87f5c 100644
+--- a/src/libaudqt/infopopup-qt.cc
++++ b/src/libaudqt/infopopup-qt.cc
+@@ -176,7 +176,9 @@ static InfoPopup * s_infopopup;
+
+ static void infopopup_show (const String & filename, const Tuple & tuple)
+ {
+- delete s_infopopup;
++ if (s_infopopup)
++ s_infopopup->deleteLater ();
++
+ s_infopopup = new InfoPopup (filename, tuple);
+
+ QObject::connect (s_infopopup, & QObject::destroyed, [] () {
+@@ -206,7 +208,11 @@ EXPORT void infopopup_show_current ()
+
+ EXPORT void infopopup_hide ()
+ {
+- delete s_infopopup;
++ /* This function can be called from an enter/leave event, and Qt does not
++ * like widgets being deleted from such events. This is debatably a bug in
++ * Qt, but deleteLater() is an effective workaround. */
++ if (s_infopopup)
++ s_infopopup->deleteLater ();
+ }
+
+ } // namespace audqt
diff --git a/media-sound/audacious/files/audacious-3.10-volume-slider-boundaries.patch b/media-sound/audacious/files/audacious-3.10-volume-slider-boundaries.patch
new file mode 100644
index 000000000000..99155bf79e8c
--- /dev/null
+++ b/media-sound/audacious/files/audacious-3.10-volume-slider-boundaries.patch
@@ -0,0 +1,25 @@
+From 473ee3b3b0ce09feb23afcfc0ff276986db4f1af Mon Sep 17 00:00:00 2001
+From: Eugene Paskevich <eugene@raptor.kiev.ua>
+Date: Sun, 4 Nov 2018 21:45:07 +0200
+Subject: [PATCH] Qt: don't let the volume slider go beyong upper and/or left
+ screen boundaries.
+
+---
+ src/libaudqt/volumebutton.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/libaudqt/volumebutton.cc b/src/libaudqt/volumebutton.cc
+index e9144cb60..71edf16a1 100644
+--- a/src/libaudqt/volumebutton.cc
++++ b/src/libaudqt/volumebutton.cc
+@@ -134,7 +134,9 @@ void VolumeButton::showSlider ()
+ int dy = container_size.height () / 2 - button_size.height () / 2;
+
+ QPoint pos = mapToGlobal (QPoint (0, 0));
+- pos += QPoint (-dx, -dy);
++ pos -= QPoint (dx, dy);
++ pos.setX(qMax(pos.x(), 0));
++ pos.setY(qMax(pos.y(), 0));
+
+ m_container->move (pos);
+ window_bring_to_front (m_container);