Fixed frame locking.

This commit introduces freezing of the Quit button, and fixes regression in locking.
This commit is contained in:
David Soulayrol 2010-11-22 11:17:35 +01:00
parent c40eaa8981
commit 48828364f9

View file

@ -318,13 +318,15 @@ class Frame(gtk.Dialog):
self._prev_button.set_sensitive(False)
self._next_button = gtk.Button('Next')
self._next_button.set_sensitive(False)
self._quit_button = gtk.Button('Quit')
self._quit_button.set_sensitive(True)
self.set_default_size(min_size[0], min_size[1])
self.set_position(gtk.WIN_POS_CENTER)
self.has_separator = True
self.add_action_widget(self._prev_button, gtk.RESPONSE_REJECT)
self.add_action_widget(self._next_button, gtk.RESPONSE_ACCEPT)
self.add_button('Quit', gtk.RESPONSE_CLOSE)
self.add_action_widget(self._quit_button, gtk.RESPONSE_CLOSE)
self.connect('close', gtk.main_quit)
self.connect('destroy', gtk.main_quit)
self.connect("response", self._on_button)
@ -341,7 +343,7 @@ class Frame(gtk.Dialog):
This method is called by ActivePane instances when their
background task is started.
"""
self._lock = True
self._locked = True
self.update()
def unlock(self):
@ -350,12 +352,12 @@ class Frame(gtk.Dialog):
This method is called by ActivePane instances when their
background task is terminated.
"""
self._lock = False
self._locked = False
self.update()
def update(self):
"""Update the frame buttons display."""
# Beware that this method can be code early, before the track
# Beware that this method can be called early, before the track
# contains the first pane
if len(self._track):
pane = self._track[-1]
@ -363,6 +365,7 @@ class Frame(gtk.Dialog):
not self._locked and len(self._track) > 1)
self._next_button.set_sensitive(
not self._locked and pane.ready and not pane.is_terminal())
self._quit_button.set_sensitive(not self._locked)
def _on_button(self, w, response_id):
"""The frame buttons handler."""