[rhythmbox] context: use an idle handler for track changes (bug #602140)
- From: Jonathan Matthew <jmatthew src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [rhythmbox] context: use an idle handler for track changes (bug #602140)
- Date: Thu, 26 Nov 2009 21:18:31 +0000 (UTC)
commit e93fd2d7afe1411a5a60052a4adecd6a56db5b7b
Author: Jonathan Matthew <jonathan d14n org>
Date: Fri Nov 27 07:14:51 2009 +1000
context: use an idle handler for track changes (bug #602140)
The playing-song-changed signal is sometimes emitted on a streaming
thread. Calling into webkit on non-main threads causes it to crash
pretty reliably, so we need to use an idle handler to process it on the
main thread.
plugins/context/context/ContextView.py | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/plugins/context/context/ContextView.py b/plugins/context/context/ContextView.py
index 7e2c0d6..e204fc4 100644
--- a/plugins/context/context/ContextView.py
+++ b/plugins/context/context/ContextView.py
@@ -174,6 +174,14 @@ class ContextView (gobject.GObject):
self.top_five_list[(i,)] = ("%d. " % (i+1), track)
def playing_changed_cb (self, playing, user_data):
+ # this sometimes happens on a streaming thread, so we need to
+ # move it to the main thread
+ gobject.idle_add (self.playing_changed_idle_cb)
+
+ def playing_changed_idle_cb (self):
+ if self.sp is None:
+ return
+
playing_entry = self.sp.get_playing_entry ()
if playing_entry is None:
return
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]