don't call twice cancel handler

This commit is contained in:
Yann Leboulanger 2010-02-04 19:34:01 +01:00
parent c642556377
commit eef9e264ae

View file

@ -1290,8 +1290,9 @@ class Dialog(gtk.Dialog):
class HigDialog(gtk.MessageDialog): class HigDialog(gtk.MessageDialog):
def __init__(self, parent, type_, buttons, pritext, sectext, def __init__(self, parent, type_, buttons, pritext, sectext,
on_response_ok = None, on_response_cancel = None, on_response_yes = None, on_response_ok=None, on_response_cancel=None, on_response_yes=None,
on_response_no = None): on_response_no=None):
self.call_cancel_on_destroy = True
gtk.MessageDialog.__init__(self, parent, gtk.MessageDialog.__init__(self, parent,
gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_MODAL, gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_MODAL,
type_, buttons, message_format = pritext) type_, buttons, message_format = pritext)
@ -1319,6 +1320,8 @@ class HigDialog(gtk.MessageDialog):
self.connect('destroy', self.on_dialog_destroy) self.connect('destroy', self.on_dialog_destroy)
def on_dialog_destroy(self, widget): def on_dialog_destroy(self, widget):
if not self.call_cancel_on_destroy:
return
cancel_handler = self.possible_responses[gtk.STOCK_CANCEL] cancel_handler = self.possible_responses[gtk.STOCK_CANCEL]
if not cancel_handler: if not cancel_handler:
return False return False
@ -1631,6 +1634,7 @@ class ConfirmationDialogDubbleCheck(ConfirmationDialog):
self.user_response_cancel[0](*self.user_response_cancel[1:]) self.user_response_cancel[0](*self.user_response_cancel[1:])
else: else:
self.user_response_cancel() self.user_response_cancel()
self.call_cancel_on_destroy = False
self.destroy() self.destroy()
def is_checked(self): def is_checked(self):