From b06b5f98ce92983db1a38f3ec6f13a9eed68f70b Mon Sep 17 00:00:00 2001
From: Daniel Drake <dsd@laptop.org>
Date: Mon, 13 May 2013 14:52:46 -0600
Subject: [PATCH] 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.
---
speechtoolbar.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/speechtoolbar.py b/speechtoolbar.py
index b01a221..1c9c291 100644
a
|
b
|
class SpeechToolbar(Gtk.Toolbar): |
53 | 53 | # Play button |
54 | 54 | self.play_btn = ToggleToolButton('media-playback-start') |
55 | 55 | self.play_btn.show() |
56 | | self.play_btn.connect('toggled', self.play_cb) |
| 56 | self.play_toggled_handler = self.play_btn.connect('toggled', self.play_cb) |
57 | 57 | self.insert(self.play_btn, -1) |
58 | 58 | self.play_btn.set_tooltip(_('Play / Pause')) |
59 | 59 | |
… |
… |
class SpeechToolbar(Gtk.Toolbar): |
158 | 158 | logging.error('reset buttons') |
159 | 159 | self.play_btn.set_icon_name('media-playback-start') |
160 | 160 | self.stop_btn.set_sensitive(False) |
| 161 | self.play_btn.handler_block(self.play_toggled_handler) |
161 | 162 | self.play_btn.set_active(False) |
| 163 | self.play_btn.handler_unblock(self.play_toggled_handler) |
162 | 164 | self.is_paused = False |
163 | 165 | |
164 | 166 | def play_cb(self, widget): |