Fixing segfaults due to accessing seekbar after it is destroyed (plus an assertion)
[watersofshiloah] / src / windows / conferences.py
index 7e18f5e..096959d 100644 (file)
@@ -288,16 +288,18 @@ class ConferenceTalkWindow(windows._base.BasicWindow):
 
        @misc_utils.log_exception(_moduleLogger)
        def _on_player_update_seek(self):
+               if self._isDestroyed:
+                       return False
                self._seekbar.set_value(self._player.percent_elapsed * 100)
-               return True if not self._isDestroyed else False
+               return True
 
        @misc_utils.log_exception(_moduleLogger)
        def _on_player_state_change(self, player, newState):
                if self._active and self._player.state == self._player.STATE_PLAY:
                        self._seekbar.show()
                        assert self._updateSeek is None
-                       self._updateSeek = go_utils.Timeout(self._updateSeek, once=False)
-                       self._updateSeek.start(seconds=30)
+                       self._updateSeek = go_utils.Timeout(self._on_player_update_seek, once=False)
+                       self._updateSeek.start(seconds=1)
                else:
                        self._seekbar.hide()
                        self._updateSeek.cancel()