private void on_dialog_response(object sender, ResponseArgs args) { if (args.ResponseId != Gtk.ResponseType.Ok) { // FIXME this is to work around a bug in gtk+ where // the filesystem events are still listened to when // a FileChooserButton is destroyed but not finalized // and an event comes in that wants to update the child widgets. uri_chooser.Dispose(); uri_chooser = null; } else if (args.ResponseId == Gtk.ResponseType.Ok) { zip(); } zipdiag.Destroy(); }