title: Python GTK: confirm overwrite dialog blocks filechooser dialog
body: <p>I have a Gtk.Button that opens a Gtk.FileChooserDialog to save a file. I implemented a Gtk.Dialog for confirmation that pops up when the chosen file name already exists in the target folder to save the file in. If I click on 'cancel' in this dialog the confirmation dialog is destroyed but I cannot use the 'cancel' or 'save' buttons of the Gtk.FileChooserDialog any longer.
  Any help is appreciated. Thanks.</p>
  
  <pre><code>#!/usr/bin/python
  # -*- coding: utf-8 -*-
  
  import os
  from gi.repository import Gtk
  
  class MainWindow(Gtk.Window):
      def __init__(self):
          Gtk.Window.__init__(self, title="demo")
          self.set_position(Gtk.WindowPosition.CENTER)
          self.button = Gtk.Button()
          self.button.set_image(Gtk.Image(stock=Gtk.STOCK_SAVE))
          self.button.connect('clicked', self.on_button_clicked)
          self.add(self.button)
  
      def on_button_clicked(self, widget):
          dialog = Gtk.FileChooserDialog("Save file", self,
              Gtk.FileChooserAction.SAVE,
              (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
               Gtk.STOCK_SAVE, Gtk.ResponseType.OK))
          response = dialog.run()
          if response == Gtk.ResponseType.OK:  # OK button was pressed or existing file was double clicked
              cansave = False
              if os.path.exists(dialog.get_filename()) == True:  # does file already exists?
                  dialog2 = DialogSaveFile(self, dialog.get_filename())  # ask to confirm overwrite
                  response = dialog2.run()
                  if response == Gtk.ResponseType.OK:
                      cansave = True
                  else:
                      pass
                  dialog2.destroy()
              else:
                  cansave = True
              if cansave == True:  # save new file
                  open(dialog.get_filename(), "w").close
                  dialog.destroy()
              else:
                  pass
          else:
              dialog.destroy()
  
  class DialogSaveFile(Gtk.Dialog):
      def __init__(self, parent, db):
          Gtk.Dialog.__init__(self, "Confirm overwrite", parent, 0,
              (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
               Gtk.STOCK_OK, Gtk.ResponseType.OK))
          self.box = self.get_content_area()
          self.label = Gtk.Label("The file `" + db + "` exists.\nDo you want it to be overwritten?")
          self.box.add(self.label)
          self.show_all()
  
  win = MainWindow()
  win.connect("delete-event", Gtk.main_quit)
  win.show_all()
  Gtk.main()
  </code></pre>