From 3583f9b3129524fbefd6e8705e8ce00cf1010b65 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Aug 27 2013 08:15:35 +0000 Subject: Fix the skinned ui drawing only the skin background on F20+ --- diff --git a/0001-skins-Properly-propagate-draws.patch b/0001-skins-Properly-propagate-draws.patch new file mode 100644 index 0000000..61919b0 --- /dev/null +++ b/0001-skins-Properly-propagate-draws.patch @@ -0,0 +1,44 @@ +From bd8c001ce7211f83491de3bd37d5e29daad3c283 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 27 Aug 2013 09:11:42 +0200 +Subject: [PATCH] skins: Properly propagate draws + +gtk only guarantees expose events / emitting the draw signal for widgets which +are backed by a native (ie X11) window, and the various GtkDrawingArea widgets +the skinned ui uses are not backed by a native window. + +For non native window backed widgets, it is up to the parent / container +which does have a native window to propagate the draws. This means that +when audacious connects to the draw signal of the GtkWindow-s it uses, +overriding the default handler, it must propagate the draw to its children. + +So far audacious has been getting away with not doing this since gtk was +handling sending expose events with a shotgun approach sending them +to all children of an exposed widget unconditionally. This has been fixed +in gtk 3.9.x / 3.10, which causes the audacious skinned ui to only draw the +window background, and nothing else, this patch fixes this. + +Signed-off-by: Hans de Goede +--- + src/skins/ui_skinned_window.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/skins/ui_skinned_window.c b/src/skins/ui_skinned_window.c +index 3f23c44..d7695f8 100644 +--- a/src/skins/ui_skinned_window.c ++++ b/src/skins/ui_skinned_window.c +@@ -35,6 +35,11 @@ DRAW_FUNC_BEGIN (window_draw) + + if (data->draw) + data->draw (wid, cr); ++ ++ if (data->is_shaded) ++ gtk_container_propagate_draw ((GtkContainer *) wid, data->shaded, cr); ++ else ++ gtk_container_propagate_draw ((GtkContainer *) wid, data->normal, cr); + DRAW_FUNC_END + + static gboolean window_button_press (GtkWidget * window, GdkEventButton * event) +-- +1.8.3.1 + diff --git a/audacious-plugins.spec b/audacious-plugins.spec index 291d971..e3edb47 100644 --- a/audacious-plugins.spec +++ b/audacious-plugins.spec @@ -11,7 +11,7 @@ Name: audacious-plugins Version: 3.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Plugins for the Audacious audio player Group: Applications/Multimedia URL: http://audacious-media-player.org/ @@ -28,6 +28,9 @@ Patch0: audacious-plugins-3.0-alpha1-xmms-skindir.patch Patch1: audacious-plugins-3.4-beta2-enable-gnomeshortcuts.patch # Fedora customization: add default system-wide module_path Patch2: audacious-plugins-3.1-beta1-ladspa.patch +# gtk-3.9+ triggers an audacious bug, breaking the skinned ui, filed upstream: +# http://redmine.audacious-media-player.org/issues/336 +Patch3: 0001-skins-Properly-propagate-draws.patch BuildRequires: audacious-devel >= %{aud_ver} BuildRequires: gettext-devel @@ -121,6 +124,7 @@ input plugin for Audacious. %patch0 -p1 -b .xmms-skindir %patch1 -p1 -b .enable-gnomeshortcuts %patch2 -p1 -b .ladspa +%patch3 -p1 for i in src/ladspa/plugin.c do @@ -233,6 +237,9 @@ make install DESTDIR=${RPM_BUILD_ROOT} INSTALL="install -p" %changelog +* Tue Aug 27 2013 Hans de Goede - 3.4-3 +- Fix the skinned ui drawing only the skin background on F20+ + * Sat Aug 03 2013 Fedora Release Engineering - 3.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild