On Tue, Sep 09, 2003 at 05:40:16PM +0200, Iņigo Serna wrote: > > if not self.block_toggle: > > > > self.block_toggle = 1 > > > > > self.toggle.set_active(self.opt) > > > > self.block_toggle = 0 > > > > > print self.opt > > > > -- and the same code here > > > > > def onToggleToggled(self, toggle): > > > print self.opt, > > > if self.opt: > > > self.opt = 0 > > > else: > > > self.opt = 1 > > > self.label.set_text('Option: %d' % self.opt) > > > > if not self.block_toggle: > > > > self.block_toggle = 1 > > > > > self.check.set_active(self.opt) > > > > self.block_toggle = 0 > > > > The problem comes because when self.toggle.set_active(self.opt) is > executed in onCheckToggled method, self.opt value has already changed to > the new value, but self.toggle.set_active(self.opt) calls > onToggleToggled method, which changes self.opt a second time.
Elaborating on what I suggested (use connect_after(), too), something like this perhaps? def onCheckToggled(self, check): # If the click started elsewhere, bail out if self.toggling: return self.toggling = 1 self.opt = check.get_active() # update friend self.toggle.set_active(self.opt) self.toggling = 0 def onToggleToggled(self, toggle): if self.toggling: return self.toggling = 1 self.opt = toggle.get_active() self.check.set_active(self.opt) self.toggling = 0 This is not very PyGTK-related, and I don't guarantee it works ;-) Take care, -- Christian Reis, Senior Engineer, Async Open Source, Brazil. http://async.com.br/~kiko/ | [+55 16] 261 2331 | NMFL _______________________________________________ pygtk mailing list [EMAIL PROTECTED] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/