diff options
-rw-r--r-- | debian/changelog | 10 | ||||
-rw-r--r-- | debian/patches/lp_750823.patch | 38 |
2 files changed, 48 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 9ba7e38..054bacf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +indicator-sound (0.6.6.1-0ubuntu3) natty; urgency=low + + * debian/patches/lp_750823.patch + - Place timeout in the mpris controller to accommodate flaky mpris dbus + behaviour, it can be seen sometimes that the players emit a property + changed on the metadata property but the actual value of the property + which the service then tries to use is the old value (LP: #750823) + + -- Ken VanDine <ken.vandine@canonical.com> Mon, 18 Apr 2011 15:08:13 -0400 + indicator-sound (0.6.6.1-0ubuntu2) natty; urgency=low * debian/patches/lp_759390.patch diff --git a/debian/patches/lp_750823.patch b/debian/patches/lp_750823.patch new file mode 100644 index 0000000..837c183 --- /dev/null +++ b/debian/patches/lp_750823.patch @@ -0,0 +1,38 @@ +=== modified file 'src/mpris2-controller.vala' +--- src/mpris2-controller.vala 2011-03-29 10:43:34 +0000 ++++ src/mpris2-controller.vala 2011-04-18 19:02:26 +0000 +@@ -83,13 +83,7 @@ + } + Variant? meta_v = changed_properties.lookup("Metadata"); + if(meta_v != null){ +- GLib.HashTable<string, Variant?> changed_updates = clean_metadata(); +- PlayerItem metadata = this.owner.custom_items[PlayerController.widget_order.METADATA]; +- metadata.reset ( MetadataMenuitem.attributes_format()); +- metadata.update ( changed_updates, +- MetadataMenuitem.attributes_format()); +- metadata.property_set_bool ( MENUITEM_PROP_VISIBLE, +- metadata.populated(MetadataMenuitem.attributes_format())); ++ Timeout.add (300, this.ensure_correct_metadata); + } + Variant? playlist_v = changed_properties.lookup("ActivePlaylist"); + if ( playlist_v != null && this.owner.use_playlists == true ){ +@@ -113,7 +107,17 @@ + title.alter_label (this.mpris2_root.Identity); + } + } +- ++ ++ private bool ensure_correct_metadata(){ ++ GLib.HashTable<string, Variant?> changed_updates = clean_metadata(); ++ PlayerItem metadata = this.owner.custom_items[PlayerController.widget_order.METADATA]; ++ metadata.reset ( MetadataMenuitem.attributes_format()); ++ metadata.update ( changed_updates, ++ MetadataMenuitem.attributes_format()); ++ metadata.property_set_bool ( MENUITEM_PROP_VISIBLE, ++ metadata.populated(MetadataMenuitem.attributes_format())); ++ return false; ++ } + private bool ensure_correct_playback_status(){ + //debug("TEST playback status = %s", this.player.PlaybackStatus); + Transport.State p = (Transport.State)this.determine_play_state(this.player.PlaybackStatus); + |