From 433318f6ebefe71d07742ceb71c50423e42301f6 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 13 May 2010 21:38:20 -0500 Subject: [PATCH] Using the player's eventual movement to start implementing flicking between presenters --- src/windows.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/windows.py b/src/windows.py index c056586..d62c0ed 100644 --- a/src/windows.py +++ b/src/windows.py @@ -855,8 +855,10 @@ class ConferenceTalkWindow(BasicWindow): def __init__(self, player, store, node): BasicWindow.__init__(self, player, store) self._node = node + self._playerNode = self._player.node self.connect_auto(self._player, "state-change", self._on_player_state_change) + self.connect_auto(self._player, "title-change", self._on_player_title_change) self.connect_auto(self._player, "error", self._on_player_error) self._loadingBanner = banners.GenericBanner() @@ -889,7 +891,7 @@ class ConferenceTalkWindow(BasicWindow): @property def _active(self): - return self._player.node is self._node + return self._playerNode is self._node def _show_loading(self): animationPath = self._store.STORE_LOOKUP["loading"] @@ -920,6 +922,12 @@ class ConferenceTalkWindow(BasicWindow): self._set_context(newState) @misc_utils.log_exception(_moduleLogger) + def _on_player_title_change(self, player, node): + if not self._active or node in [None, self._node]: + return + self.emit("jump-to", node) + + @misc_utils.log_exception(_moduleLogger) def _on_player_error(self, player, err, debug): _moduleLogger.error("%r - %r" % (err, debug)) @@ -972,9 +980,15 @@ class ConferenceTalkWindow(BasicWindow): elif navState == "up": pass elif navState == "left": - self._player.next() + if self._active: + self._player.next() + else: + pass # @todo Not Implemented elif navState == "right": - self._player.back() + if self._active: + self._player.back() + else: + pass # @todo Not Implemented gobject.type_register(ConferenceTalkWindow) -- 1.7.9.5