diff -Nru pavucontrol-2.0/debian/changelog pavucontrol-2.0/debian/changelog --- pavucontrol-2.0/debian/changelog 2014-04-07 19:11:25.000000000 +0000 +++ pavucontrol-2.0/debian/changelog 2014-10-22 23:44:48.000000000 +0000 @@ -1,3 +1,14 @@ +pavucontrol (2.0-3) unstable; urgency=medium + + * Backport patches from upstream that fix gtk/glade usage + * Handle IO errors when loading theme icon. Closes: #765725 + * Drop patchsys-quilt: package is 3.0 (quilt) + * Drop README-updating.patch, remove README on clean to ensure rebuild + * Add myself to uploaders + * Bump standards version, no changes needed + + -- Felipe Sateler <fsateler@debian.org> Wed, 22 Oct 2014 20:44:36 -0300 + pavucontrol (2.0-2) unstable; urgency=medium [ Léo Cavaillé ] diff -Nru pavucontrol-2.0/debian/control pavucontrol-2.0/debian/control --- pavucontrol-2.0/debian/control 2014-04-07 19:11:25.000000000 +0000 +++ pavucontrol-2.0/debian/control 2014-10-22 23:44:48.000000000 +0000 @@ -2,7 +2,9 @@ Section: sound Priority: optional Maintainer: Pulseaudio maintenance team <pkg-pulseaudio-devel@lists.alioth.debian.org> -Uploaders: Sjoerd Simons <sjoerd@debian.org>, Léo Cavaillé <leo@cavaille.net> +Uploaders: Sjoerd Simons <sjoerd@debian.org>, + Léo Cavaillé <leo@cavaille.net>, + Felipe Sateler <fsateler@debian.org> Build-Depends: debhelper (>= 5), cdbs, autotools-dev, libpulse-dev (>= 0.9.15), libgtkmm-3.0-dev, @@ -13,7 +15,7 @@ quilt, libcanberra-gtk3-dev (>= 0.16), intltool -Standards-Version: 3.9.5 +Standards-Version: 3.9.6 Vcs-Git: git://git.debian.org/git/pkg-pulseaudio/pavucontrol.git Vcs-Browser: http://git.debian.org/?p=pkg-pulseaudio/pavucontrol.git Homepage: http://0pointer.de/lennart/projects/pavucontrol/ diff -Nru pavucontrol-2.0/debian/patches/0002-README-updating.patch pavucontrol-2.0/debian/patches/0002-README-updating.patch --- pavucontrol-2.0/debian/patches/0002-README-updating.patch 2014-04-07 19:11:25.000000000 +0000 +++ pavucontrol-2.0/debian/patches/0002-README-updating.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,437 +0,0 @@ ---- a/README -+++ b/README -@@ -1,4 +1,6 @@ -- PulseAudio Volume Control 0.99.2 -+ -+ -+ PulseAudio Volume Control 2.0 - - Copyright 2006-2009 Lennart Poettering, 2009-2011 Colin Guthrie - <mzcnihpbageby (at) 0pointer (dot) de> -@@ -26,83 +28,91 @@ - - News - -+ Fri Mar 8 2013: -+ -+ [10]Version 2.0 released. -+ -+ Tue Sep 27 2011: -+ -+ [11]Version 1.0 released. -+ - Thu Sep 15 2011: - -- [10]Version 0.99.2 (v1 RC2) released; digitial receiver UI. -+ [12]Version 0.99.2 (v1 RC2) released; digitial receiver UI. - - Tue Aug 2 2011: - -- [11]Version 0.99.1 (v1 RC1) released; gtk3 support; source output -+ [13]Version 0.99.1 (v1 RC1) released; gtk3 support; source output - volume support; key command handling; bugfixes. - - Wed Oct 14 2009: - -- [12]Version 0.9.10 released; minor fixes; translation updates. -+ [14]Version 0.9.10 released; minor fixes; translation updates. - - Thu Sep 10 2009: - -- [13]Version 0.9.9 released; allow configuring device ports; various -+ [15]Version 0.9.9 released; allow configuring device ports; various - updates. - - Mon Apr 13 2009: - -- [14]Version 0.9.8 released; allow configuring card profiles; various -+ [16]Version 0.9.8 released; allow configuring card profiles; various - updates. - - Tue Sep 9 2008: - -- [15]Version 0.9.7 released; show volume meter for each stream and -+ [17]Version 0.9.7 released; show volume meter for each stream and - device. - - Fri Mar 28 2008: - -- [16]Version 0.9.6 released; draw radio buttons instead of check boxes -+ [18]Version 0.9.6 released; draw radio buttons instead of check boxes - when moving streams; fix crasher when connecting to a PA server that - has no default sink/source configured. - - Tue Oct 30 2007: - -- [17]Version 0.9.5 released; rework UI; add context menu option to kill -+ [19]Version 0.9.5 released; rework UI; add context menu option to kill - a playback stream; add context menu option to select the default - device; use prettier channel names; filter non-application streams by - default; support muting streams - - Sat Aug 26 2006: - -- [18]Version 0.9.4 released; add the ability to move a stream to another -+ [20]Version 0.9.4 released; add the ability to move a stream to another - device while it is playing; limit the list of sinks/sources shown by - their type; other cleanups - - Mon Jul 24 2006: - -- [19]Version 0.9.3 released; show client names only if they are set -+ [21]Version 0.9.3 released; show client names only if they are set - - Sat Jul 8 2006: - -- [20]Version 0.9.2 released; update for [21]PulseAudio 0.9.2 -+ [22]Version 0.9.2 released; update for [23]PulseAudio 0.9.2 - - Fri Jun 2 2006: - -- [22]Version 0.9.1 released; add a .desktop file; update icons -+ [24]Version 0.9.1 released; add a .desktop file; update icons - everywhere - - Sat May 27 2006: - -- [23]Version 0.9.0 released; update for Polypaudio 0.9.0; show client -+ [25]Version 0.9.0 released; update for Polypaudio 0.9.0; show client - name of playback streams; make volume slider more responsive - - Fri Apr 21 2006: - -- [24]Version 0.8 released; initial release -+ [26]Version 0.8 released; initial release - - Overview - - PulseAudio Volume Control (pavucontrol) is a simple GTK based volume -- control tool ("mixer") for the [25]PulseAudio sound server. In contrast -+ control tool ("mixer") for the [27]PulseAudio sound server. In contrast - to classic mixer tools this one allows you to control both the volume - of hardware devices and of each playback stream separately. - -- Everybody loves [26]screenshots. -+ Everybody loves [28]screenshots. - - Current Status - -@@ -121,9 +131,9 @@ - Unix versions) since it uses GNU autoconf for source code - configuration. - -- pavucontrol requires [27]gtkmm and glademmm installed. -+ pavucontrol requires [29]gtkmm and glademmm installed. - -- Obviously pavucontrol requires an installation of [28]PulseAudio -+ Obviously pavucontrol requires an installation of [30]PulseAudio - (version 0.9.16). - - Installation -@@ -140,12 +150,12 @@ - Download - - The newest release is always available from -- [29]http://freedesktop.org/software/pulseaudio/pavucontrol/ -+ [31]http://freedesktop.org/software/pulseaudio/pavucontrol/ - -- The current release is [30]0.99.2 -+ The current release is [32]2.0 - -- Get pavucontrol's development sources from the [31]GIT [32]repository -- ([33]gitweb): -+ Get pavucontrol's development sources from the [33]GIT [34]repository -+ ([35]gitweb): - git clone git://git.0pointer.de/pavucontrol - __________________________________________________________________ - -@@ -155,36 +165,38 @@ - - References - -- 1. README#license -- 2. README#news -- 3. README#overview -- 4. README#status -- 5. README#documentation -- 6. README#requirements -- 7. README#installation -- 8. README#acks -- 9. README#download -- 10. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.2.tar.gz -- 11. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.1.tar.gz -- 12. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.10.tar.gz -- 13. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.9.tar.gz -- 14. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.8.tar.gz -- 15. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.7.tar.gz -- 16. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.6.tar.gz -- 17. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.5.tar.gz -- 18. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.4.tar.gz -- 19. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.3.tar.gz -- 20. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.2.tar.gz -- 21. http://pulseaudio.org/ -- 22. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.1.tar.gz -- 23. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.0.tar.gz -- 24. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.8.tar.gz -- 25. http://0pointer.de/lennart/projects/pulseaudio/ -- 26. http://freedesktop.org/software/pulseaudio/pavucontrol//screenshot.png -- 27. http://gtkmm.sf.net/ -- 28. http://pulseaudio.org/ -- 29. http://freedesktop.org/software/pulseaudio/pavucontrol/ -- 30. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.2.tar.gz -- 31. http://git-scm.org/ -- 32. git://git.0pointer.de/pavucontrol -- 33. http://git.0pointer.de/?p=pavucontrol.git -+ 1. README.html#license -+ 2. README.html#news -+ 3. README.html#overview -+ 4. README.html#status -+ 5. README.html#documentation -+ 6. README.html#requirements -+ 7. README.html#installation -+ 8. README.html#acks -+ 9. README.html#download -+ 10. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-2.0.tar.xz -+ 11. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-1.0.tar.xz -+ 12. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.2.tar.gz -+ 13. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.1.tar.gz -+ 14. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.10.tar.gz -+ 15. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.9.tar.gz -+ 16. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.8.tar.gz -+ 17. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.7.tar.gz -+ 18. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.6.tar.gz -+ 19. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.5.tar.gz -+ 20. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.4.tar.gz -+ 21. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.3.tar.gz -+ 22. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.2.tar.gz -+ 23. http://pulseaudio.org/ -+ 24. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.1.tar.gz -+ 25. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.0.tar.gz -+ 26. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.8.tar.gz -+ 27. http://0pointer.de/lennart/projects/pulseaudio/ -+ 28. http://freedesktop.org/software/pulseaudio/pavucontrol//screenshot.png -+ 29. http://gtkmm.sf.net/ -+ 30. http://pulseaudio.org/ -+ 31. http://freedesktop.org/software/pulseaudio/pavucontrol/ -+ 32. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-2.0.tar.gz -+ 33. http://git-scm.org/ -+ 34. git://git.0pointer.de/pavucontrol -+ 35. http://git.0pointer.de/?p=pavucontrol.git ---- a/doc/README -+++ b/doc/README -@@ -1,4 +1,5 @@ -- PulseAudio Volume Control 0.99.2 -+ -+ PulseAudio Volume Control 2.0 - - Copyright 2006-2009 Lennart Poettering, 2009-2011 Colin Guthrie - <mzcnihpbageby (at) 0pointer (dot) de> -@@ -26,83 +27,91 @@ - - News - -+ Fri Mar 8 2013: -+ -+ [10]Version 2.0 released. -+ -+ Tue Sep 27 2011: -+ -+ [11]Version 1.0 released. -+ - Thu Sep 15 2011: - -- [10]Version 0.99.2 (v1 RC2) released; digitial receiver UI. -+ [12]Version 0.99.2 (v1 RC2) released; digitial receiver UI. - - Tue Aug 2 2011: - -- [11]Version 0.99.1 (v1 RC1) released; gtk3 support; source output -+ [13]Version 0.99.1 (v1 RC1) released; gtk3 support; source output - volume support; key command handling; bugfixes. - - Wed Oct 14 2009: - -- [12]Version 0.9.10 released; minor fixes; translation updates. -+ [14]Version 0.9.10 released; minor fixes; translation updates. - - Thu Sep 10 2009: - -- [13]Version 0.9.9 released; allow configuring device ports; various -+ [15]Version 0.9.9 released; allow configuring device ports; various - updates. - - Mon Apr 13 2009: - -- [14]Version 0.9.8 released; allow configuring card profiles; various -+ [16]Version 0.9.8 released; allow configuring card profiles; various - updates. - - Tue Sep 9 2008: - -- [15]Version 0.9.7 released; show volume meter for each stream and -+ [17]Version 0.9.7 released; show volume meter for each stream and - device. - - Fri Mar 28 2008: - -- [16]Version 0.9.6 released; draw radio buttons instead of check boxes -+ [18]Version 0.9.6 released; draw radio buttons instead of check boxes - when moving streams; fix crasher when connecting to a PA server that - has no default sink/source configured. - - Tue Oct 30 2007: - -- [17]Version 0.9.5 released; rework UI; add context menu option to kill -+ [19]Version 0.9.5 released; rework UI; add context menu option to kill - a playback stream; add context menu option to select the default - device; use prettier channel names; filter non-application streams by - default; support muting streams - - Sat Aug 26 2006: - -- [18]Version 0.9.4 released; add the ability to move a stream to another -+ [20]Version 0.9.4 released; add the ability to move a stream to another - device while it is playing; limit the list of sinks/sources shown by - their type; other cleanups - - Mon Jul 24 2006: - -- [19]Version 0.9.3 released; show client names only if they are set -+ [21]Version 0.9.3 released; show client names only if they are set - - Sat Jul 8 2006: - -- [20]Version 0.9.2 released; update for [21]PulseAudio 0.9.2 -+ [22]Version 0.9.2 released; update for [23]PulseAudio 0.9.2 - - Fri Jun 2 2006: - -- [22]Version 0.9.1 released; add a .desktop file; update icons -+ [24]Version 0.9.1 released; add a .desktop file; update icons - everywhere - - Sat May 27 2006: - -- [23]Version 0.9.0 released; update for Polypaudio 0.9.0; show client -+ [25]Version 0.9.0 released; update for Polypaudio 0.9.0; show client - name of playback streams; make volume slider more responsive - - Fri Apr 21 2006: - -- [24]Version 0.8 released; initial release -+ [26]Version 0.8 released; initial release - - Overview - - PulseAudio Volume Control (pavucontrol) is a simple GTK based volume -- control tool ("mixer") for the [25]PulseAudio sound server. In contrast -+ control tool ("mixer") for the [27]PulseAudio sound server. In contrast - to classic mixer tools this one allows you to control both the volume - of hardware devices and of each playback stream separately. - -- Everybody loves [26]screenshots. -+ Everybody loves [28]screenshots. - - Current Status - -@@ -121,9 +130,9 @@ - Unix versions) since it uses GNU autoconf for source code - configuration. - -- pavucontrol requires [27]gtkmm and glademmm installed. -+ pavucontrol requires [29]gtkmm and glademmm installed. - -- Obviously pavucontrol requires an installation of [28]PulseAudio -+ Obviously pavucontrol requires an installation of [30]PulseAudio - (version 0.9.16). - - Installation -@@ -140,12 +149,12 @@ - Download - - The newest release is always available from -- [29]http://freedesktop.org/software/pulseaudio/pavucontrol/ -+ [31]http://freedesktop.org/software/pulseaudio/pavucontrol/ - -- The current release is [30]0.99.2 -+ The current release is [32]2.0 - -- Get pavucontrol's development sources from the [31]GIT [32]repository -- ([33]gitweb): -+ Get pavucontrol's development sources from the [33]GIT [34]repository -+ ([35]gitweb): - git clone git://git.0pointer.de/pavucontrol - __________________________________________________________________ - -@@ -155,36 +164,38 @@ - - References - -- 1. README#license -- 2. README#news -- 3. README#overview -- 4. README#status -- 5. README#documentation -- 6. README#requirements -- 7. README#installation -- 8. README#acks -- 9. README#download -- 10. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.2.tar.gz -- 11. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.1.tar.gz -- 12. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.10.tar.gz -- 13. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.9.tar.gz -- 14. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.8.tar.gz -- 15. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.7.tar.gz -- 16. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.6.tar.gz -- 17. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.5.tar.gz -- 18. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.4.tar.gz -- 19. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.3.tar.gz -- 20. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.2.tar.gz -- 21. http://pulseaudio.org/ -- 22. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.1.tar.gz -- 23. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.0.tar.gz -- 24. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.8.tar.gz -- 25. http://0pointer.de/lennart/projects/pulseaudio/ -- 26. http://freedesktop.org/software/pulseaudio/pavucontrol//screenshot.png -- 27. http://gtkmm.sf.net/ -- 28. http://pulseaudio.org/ -- 29. http://freedesktop.org/software/pulseaudio/pavucontrol/ -- 30. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.2.tar.gz -- 31. http://git-scm.org/ -- 32. git://git.0pointer.de/pavucontrol -- 33. http://git.0pointer.de/?p=pavucontrol.git -+ 1. README.html#license -+ 2. README.html#news -+ 3. README.html#overview -+ 4. README.html#status -+ 5. README.html#documentation -+ 6. README.html#requirements -+ 7. README.html#installation -+ 8. README.html#acks -+ 9. README.html#download -+ 10. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-2.0.tar.xz -+ 11. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-1.0.tar.xz -+ 12. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.2.tar.gz -+ 13. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.99.1.tar.gz -+ 14. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.10.tar.gz -+ 15. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.9.tar.gz -+ 16. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.8.tar.gz -+ 17. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.7.tar.gz -+ 18. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.6.tar.gz -+ 19. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.5.tar.gz -+ 20. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.4.tar.gz -+ 21. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.3.tar.gz -+ 22. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.2.tar.gz -+ 23. http://pulseaudio.org/ -+ 24. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.1.tar.gz -+ 25. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.9.0.tar.gz -+ 26. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-0.8.tar.gz -+ 27. http://0pointer.de/lennart/projects/pulseaudio/ -+ 28. http://freedesktop.org/software/pulseaudio/pavucontrol//screenshot.png -+ 29. http://gtkmm.sf.net/ -+ 30. http://pulseaudio.org/ -+ 31. http://freedesktop.org/software/pulseaudio/pavucontrol/ -+ 32. http://freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-2.0.tar.gz -+ 33. http://git-scm.org/ -+ 34. git://git.0pointer.de/pavucontrol -+ 35. http://git.0pointer.de/?p=pavucontrol.git diff -Nru pavucontrol-2.0/debian/patches/0003-Reference-the-widget-before-returning-it-from-create.patch pavucontrol-2.0/debian/patches/0003-Reference-the-widget-before-returning-it-from-create.patch --- pavucontrol-2.0/debian/patches/0003-Reference-the-widget-before-returning-it-from-create.patch 1970-01-01 00:00:00.000000000 +0000 +++ pavucontrol-2.0/debian/patches/0003-Reference-the-widget-before-returning-it-from-create.patch 2014-10-22 23:44:48.000000000 +0000 @@ -0,0 +1,196 @@ +From: Hans de Goede <hdegoede@redhat.com> +Date: Thu, 28 Aug 2014 12:58:05 +0200 +Subject: Reference the widget before returning it from ::create methods + +Widgets (unlike Windows and Dialogs) returned by Gtk::Builder::get_widget* +start owned by the GtkBuilder object, the idea being that they will get +added to a container before the scope of the GtkBuilder object ends, and it +thus automatically gets destroyed. + +But in the various ::create methods in pavucontrol, a pointer to the widget +gets returned, so that it can be added to a cointainer by the caller. +However as soon as the ::create method exits the GtkBuilder object owning +the widget, and thus also the widget gets destroyed, and we end up returning +free-ed memory. + +This commit fixes this by making all ::create methods take a reference on +the widget before returning it, and having all the callers unreference the +widget after adding it to a container. + +https://bugs.freedesktop.org/show_bug.cgi?id=83144 +https://bugzilla.redhat.com/show_bug.cgi?id=1133339 + +Signed-off-by: Hans de Goede <hdegoede@redhat.com> +--- + src/cardwidget.cc | 1 + + src/channelwidget.cc | 1 + + src/devicewidget.cc | 1 + + src/mainwindow.cc | 6 ++++++ + src/rolewidget.cc | 1 + + src/sinkinputwidget.cc | 1 + + src/sinkwidget.cc | 1 + + src/sourceoutputwidget.cc | 1 + + src/sourcewidget.cc | 1 + + src/streamwidget.cc | 1 + + 10 files changed, 15 insertions(+) + +diff --git a/src/cardwidget.cc b/src/cardwidget.cc +index c79ac6c..28c558d 100644 +--- a/src/cardwidget.cc ++++ b/src/cardwidget.cc +@@ -45,6 +45,7 @@ CardWidget* CardWidget::create() { + CardWidget* w; + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "cardWidget"); + x->get_widget_derived("cardWidget", w); ++ w->reference(); + return w; + } + +diff --git a/src/channelwidget.cc b/src/channelwidget.cc +index 6f59de2..fe94c11 100644 +--- a/src/channelwidget.cc ++++ b/src/channelwidget.cc +@@ -53,6 +53,7 @@ ChannelWidget* ChannelWidget::create() { + x->add_from_file(GLADE_FILE, "adjustment1"); + x->add_from_file(GLADE_FILE, "channelWidget"); + x->get_widget_derived("channelWidget", w); ++ w->reference(); + return w; + } + +diff --git a/src/devicewidget.cc b/src/devicewidget.cc +index 1c34ea6..2fb8095 100644 +--- a/src/devicewidget.cc ++++ b/src/devicewidget.cc +@@ -84,6 +84,7 @@ void DeviceWidget::setChannelMap(const pa_channel_map &m, bool can_decibel) { + snprintf(text, sizeof(text), "<b>%s</b>", pa_channel_position_to_pretty_string(m.map[i])); + cw->channelLabel->set_markup(text); + channelsVBox->pack_start(*cw, false, false, 0); ++ cw->unreference(); + } + channelWidgets[m.channels-1]->last = true; + +diff --git a/src/mainwindow.cc b/src/mainwindow.cc +index 741af94..a67b15c 100644 +--- a/src/mainwindow.cc ++++ b/src/mainwindow.cc +@@ -298,6 +298,7 @@ void MainWindow::updateCard(const pa_card_info &info) { + else { + cardWidgets[info.index] = w = CardWidget::create(); + cardsVBox->pack_start(*w, false, false, 0); ++ w->unreference(); + w->index = info.index; + is_new = true; + } +@@ -414,6 +415,7 @@ bool MainWindow::updateSink(const pa_sink_info &info) { + sinkWidgets[info.index] = w = SinkWidget::create(this); + w->setChannelMap(info.channel_map, !!(info.flags & PA_SINK_DECIBEL_VOLUME)); + sinksVBox->pack_start(*w, false, false, 0); ++ w->unreference(); + w->index = info.index; + w->monitor_index = info.monitor_source; + is_new = true; +@@ -572,6 +574,7 @@ void MainWindow::updateSource(const pa_source_info &info) { + sourceWidgets[info.index] = w = SourceWidget::create(this); + w->setChannelMap(info.channel_map, !!(info.flags & PA_SOURCE_DECIBEL_VOLUME)); + sourcesVBox->pack_start(*w, false, false, 0); ++ w->unreference(); + w->index = info.index; + is_new = true; + +@@ -687,6 +690,7 @@ void MainWindow::updateSinkInput(const pa_sink_input_info &info) { + sinkInputWidgets[info.index] = w = SinkInputWidget::create(this); + w->setChannelMap(info.channel_map, true); + streamsVBox->pack_start(*w, false, false, 0); ++ w->unreference(); + w->index = info.index; + w->clientIndex = info.client; + is_new = true; +@@ -742,6 +746,7 @@ void MainWindow::updateSourceOutput(const pa_source_output_info &info) { + w->setChannelMap(info.channel_map, true); + #endif + recsVBox->pack_start(*w, false, false, 0); ++ w->unreference(); + w->index = info.index; + w->clientIndex = info.client; + is_new = true; +@@ -835,6 +840,7 @@ bool MainWindow::createEventRoleWidget() { + + eventRoleWidget = RoleWidget::create(); + streamsVBox->pack_start(*eventRoleWidget, false, false, 0); ++ eventRoleWidget->unreference(); + eventRoleWidget->role = "sink-input-by-media-role:event"; + eventRoleWidget->setChannelMap(cm, true); + +diff --git a/src/rolewidget.cc b/src/rolewidget.cc +index fd3196c..db07f92 100644 +--- a/src/rolewidget.cc ++++ b/src/rolewidget.cc +@@ -40,6 +40,7 @@ RoleWidget* RoleWidget::create() { + RoleWidget* w; + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget"); + x->get_widget_derived("streamWidget", w); ++ w->reference(); + return w; + } + +diff --git a/src/sinkinputwidget.cc b/src/sinkinputwidget.cc +index b88b718..5a0ba39 100644 +--- a/src/sinkinputwidget.cc ++++ b/src/sinkinputwidget.cc +@@ -43,6 +43,7 @@ SinkInputWidget* SinkInputWidget::create(MainWindow* mainWindow) { + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget"); + x->get_widget_derived("streamWidget", w); + w->init(mainWindow); ++ w->reference(); + return w; + } + +diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc +index 1726550..adfa2d9 100644 +--- a/src/sinkwidget.cc ++++ b/src/sinkwidget.cc +@@ -70,6 +70,7 @@ SinkWidget* SinkWidget::create(MainWindow* mainWindow) { + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "deviceWidget"); + x->get_widget_derived("deviceWidget", w); + w->init(mainWindow, "sink"); ++ w->reference(); + return w; + } + +diff --git a/src/sourceoutputwidget.cc b/src/sourceoutputwidget.cc +index 827c5a8..4d915b0 100644 +--- a/src/sourceoutputwidget.cc ++++ b/src/sourceoutputwidget.cc +@@ -49,6 +49,7 @@ SourceOutputWidget* SourceOutputWidget::create(MainWindow* mainWindow) { + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget"); + x->get_widget_derived("streamWidget", w); + w->init(mainWindow); ++ w->reference(); + return w; + } + +diff --git a/src/sourcewidget.cc b/src/sourcewidget.cc +index 5e4ecf0..fde5333 100644 +--- a/src/sourcewidget.cc ++++ b/src/sourcewidget.cc +@@ -35,6 +35,7 @@ SourceWidget* SourceWidget::create(MainWindow* mainWindow) { + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "deviceWidget"); + x->get_widget_derived("deviceWidget", w); + w->init(mainWindow, "source"); ++ w->reference(); + return w; + } + +diff --git a/src/streamwidget.cc b/src/streamwidget.cc +index 94363ec..e602cce 100644 +--- a/src/streamwidget.cc ++++ b/src/streamwidget.cc +@@ -77,6 +77,7 @@ void StreamWidget::setChannelMap(const pa_channel_map &m, bool can_decibel) { + snprintf(text, sizeof(text), "<b>%s</b>", pa_channel_position_to_pretty_string(m.map[i])); + cw->channelLabel->set_markup(text); + channelsVBox->pack_start(*cw, false, false, 0); ++ cw->unreference(); + } + channelWidgets[m.channels-1]->last = true; + channelWidgets[m.channels-1]->setBaseVolume(PA_VOLUME_NORM); diff -Nru pavucontrol-2.0/debian/patches/0004-Do-not-instantiate-cardwidget-devicewidget-and-rolew.patch pavucontrol-2.0/debian/patches/0004-Do-not-instantiate-cardwidget-devicewidget-and-rolew.patch --- pavucontrol-2.0/debian/patches/0004-Do-not-instantiate-cardwidget-devicewidget-and-rolew.patch 1970-01-01 00:00:00.000000000 +0000 +++ pavucontrol-2.0/debian/patches/0004-Do-not-instantiate-cardwidget-devicewidget-and-rolew.patch 2014-10-22 23:44:48.000000000 +0000 @@ -0,0 +1,76 @@ +From: Hans de Goede <hdegoede@redhat.com> +Date: Fri, 29 Aug 2014 09:42:04 +0200 +Subject: Do not instantiate cardwidget, + devicewidget and rolewidget with a type of EventBox + +RoleWidget::create contains: + x->get_widget_derived("streamWidget", w); + +But streamWidget is defined as following in the glade file: +<object class="GtkEventBox" id="streamWidget"> + +Where as RoleWidget is derived from [Minimal]StreamWidget, which is derived +from Gtk::VBox, so this is clearly wrong. + +Adding: +printf("rolewidget type: %s\n", g_type_name(G_TYPE_FROM_INSTANCE(w->gobj()))); +for debugging shows that this really leads to RoleWidget being instantiated +as an EventBox (yet things still work due to sheer luck). + +This commit fixes this, by putting the streamWidget id at the right level of +the hierarchy in the glade file (and likewise for cardWidget and deviceWidget). + +Signed-off-by: Hans de Goede <hdegoede@redhat.com> +--- + src/pavucontrol.glade | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade +index 6defb3d..fd43217 100644 +--- a/src/pavucontrol.glade ++++ b/src/pavucontrol.glade +@@ -12,12 +12,12 @@ + <property name="can_focus">False</property> + <property name="title" translatable="yes">window1</property> + <child> +- <object class="GtkEventBox" id="cardWidget"> ++ <object class="GtkEventBox" id="cardWidgetBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="visible_window">False</property> + <child> +- <object class="GtkVBox" id="cardWidget1"> ++ <object class="GtkVBox" id="cardWidget"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> +@@ -202,12 +202,12 @@ + <property name="can_focus">False</property> + <property name="title" translatable="yes">window1</property> + <child> +- <object class="GtkEventBox" id="deviceWidget"> ++ <object class="GtkEventBox" id="deviceWidgetBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="visible_window">False</property> + <child> +- <object class="GtkVBox" id="streamWidget2"> ++ <object class="GtkVBox" id="deviceWidget"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> +@@ -1316,12 +1316,12 @@ + <property name="can_focus">False</property> + <property name="title" translatable="yes">window1</property> + <child> +- <object class="GtkEventBox" id="streamWidget"> ++ <object class="GtkEventBox" id="streamWidgetBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="visible_window">False</property> + <child> +- <object class="GtkVBox" id="streamWidget2"> ++ <object class="GtkVBox" id="streamWidget"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> diff -Nru pavucontrol-2.0/debian/patches/0005-pavucontrol-Handle-IO-errors-in-icon-setting-code.patch pavucontrol-2.0/debian/patches/0005-pavucontrol-Handle-IO-errors-in-icon-setting-code.patch --- pavucontrol-2.0/debian/patches/0005-pavucontrol-Handle-IO-errors-in-icon-setting-code.patch 1970-01-01 00:00:00.000000000 +0000 +++ pavucontrol-2.0/debian/patches/0005-pavucontrol-Handle-IO-errors-in-icon-setting-code.patch 2014-10-22 23:44:48.000000000 +0000 @@ -0,0 +1,23 @@ +From: Felipe Sateler <fsateler@debian.org> +Date: Wed, 22 Oct 2014 19:50:00 -0300 +Subject: pavucontrol: Handle IO errors in icon setting code + +If gtk cannot load the file, it will throw a Gio::Error. In that case +fall back to setting the name. +--- + src/mainwindow.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/mainwindow.cc b/src/mainwindow.cc +index a67b15c..fbd72e8 100644 +--- a/src/mainwindow.cc ++++ b/src/mainwindow.cc +@@ -249,6 +249,8 @@ static void set_icon_name_fallback(Gtk::Image *i, const char *name, Gtk::IconSiz + i->set(name); + } catch (Gtk::IconThemeError &e) { + i->set(name); ++ } catch (Gio::Error &e) { ++ i->set(name); + } + } + diff -Nru pavucontrol-2.0/debian/patches/series pavucontrol-2.0/debian/patches/series --- pavucontrol-2.0/debian/patches/series 2014-04-07 19:11:25.000000000 +0000 +++ pavucontrol-2.0/debian/patches/series 2014-10-22 23:44:48.000000000 +0000 @@ -1,2 +1,4 @@ 0001-Don-t-crash-if-pa_stream_peek-returns-NULL.patch -0002-README-updating.patch +0003-Reference-the-widget-before-returning-it-from-create.patch +0004-Do-not-instantiate-cardwidget-devicewidget-and-rolew.patch +0005-pavucontrol-Handle-IO-errors-in-icon-setting-code.patch diff -Nru pavucontrol-2.0/debian/rules pavucontrol-2.0/debian/rules --- pavucontrol-2.0/debian/rules 2014-04-07 19:11:25.000000000 +0000 +++ pavucontrol-2.0/debian/rules 2014-10-22 23:44:48.000000000 +0000 @@ -2,7 +2,6 @@ include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk -include /usr/share/cdbs/1/rules/patchsys-quilt.mk DEB_DESTDIR = $(CURDIR)/debian/pavucontrol @@ -12,6 +11,7 @@ clean:: rm -f $(CURDIR)/debian/pavucontrol.1.xml rm -f $(CURDIR)/debian/pavucontrol.1 + rm -f README update-patch-series: mkdir -p $(CURDIR)/debian/patches