From 85cd9ab565fe37c981221a40f3756d8ceda85bfe Mon Sep 17 00:00:00 2001 From: Daniel Drake Date: Mon, 13 May 2013 20:52:46 +0000 Subject: Don't pause audio stream when playback finishes (#3694) reset_buttons_cb gets called when speech playback finishes. Changing the activity property of the play ToggleToolButton will invoke its 'toggled' signal, causing it to pause the audio stream, rather than letting it close completely. Block the signal handler from executing at this point to avoid this confusion. --- diff --git a/speechtoolbar.py b/speechtoolbar.py index b01a221..1c9c291 100644 --- a/speechtoolbar.py +++ b/speechtoolbar.py @@ -53,7 +53,7 @@ class SpeechToolbar(Gtk.Toolbar): # Play button self.play_btn = ToggleToolButton('media-playback-start') self.play_btn.show() - self.play_btn.connect('toggled', self.play_cb) + self.play_toggled_handler = self.play_btn.connect('toggled', self.play_cb) self.insert(self.play_btn, -1) self.play_btn.set_tooltip(_('Play / Pause')) @@ -158,7 +158,9 @@ class SpeechToolbar(Gtk.Toolbar): logging.error('reset buttons') self.play_btn.set_icon_name('media-playback-start') self.stop_btn.set_sensitive(False) + self.play_btn.handler_block(self.play_toggled_handler) self.play_btn.set_active(False) + self.play_btn.handler_unblock(self.play_toggled_handler) self.is_paused = False def play_cb(self, widget): -- cgit v0.9.1