diff --git a/wicd/gui.py b/wicd/gui.py index 0023b73..03da45b 100644 --- a/wicd/gui.py +++ b/wicd/gui.py @@ -666,24 +666,28 @@ class appGui(object): """ Initiates the connection process in the daemon. """ def handler(*args): self._connect_thread_started = True - - cancel_button = self.wTree.get_widget("cancel_button") - cancel_button.set_sensitive(True) - self.network_list.set_sensitive(False) - if self.statusID: - gobject.idle_add(self.status_bar.remove, 1, self.statusID) - gobject.idle_add(self.set_status, language["disconnecting_active"]) - gobject.idle_add(self.status_area.show_all) - self.wait_for_events() - self._connect_thread_started = False + + def setup_interface_for_connection(): + cancel_button = self.wTree.get_widget("cancel_button") + cancel_button.set_sensitive(True) + self.network_list.set_sensitive(False) + if self.statusID: + gobject.idle_add(self.status_bar.remove, 1, self.statusID) + gobject.idle_add(self.set_status, language["disconnecting_active"]) + gobject.idle_add(self.status_area.show_all) + self.wait_for_events() + self._connect_thread_started = False + if nettype == "wireless": if not self.check_encryption_valid(networkid, networkentry.advanced_dialog): self.edit_advanced(None, nettype, networkid, networkentry) return False + setup_interface_for_connection() wireless.ConnectWireless(networkid, reply_handler=handler, error_handler=handler) elif nettype == "wired": + setup_interface_for_connection() wired.ConnectWired(reply_handler=handler, error_handler=handler) gobject.source_remove(self.update_cb)