Cole Robinson <crobinso@xxxxxxxxxx> writes: > On 10/21/2014 09:45 AM, Giuseppe Scrivano wrote: >> Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1152981 >> >> Signed-off-by: Giuseppe Scrivano <gscrivan@xxxxxxxxxx> >> --- >> virtManager/console.py | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/virtManager/console.py b/virtManager/console.py >> index 67bfe10..030a5c1 100644 >> --- a/virtManager/console.py >> +++ b/virtManager/console.py >> @@ -405,6 +405,10 @@ class SpiceViewer(Viewer): >> self.console.disconnected() >> elif event == SpiceClientGLib.ChannelEvent.ERROR_AUTH: >> self.console.activate_auth_page() >> + for i in self._main_channel_hids: >> + self.main_channel.handler_disconnect(i) >> + self._main_channel_hids = [] >> + self.main_channel = None >> elif event in [SpiceClientGLib.ChannelEvent.ERROR_CONNECT, >> SpiceClientGLib.ChannelEvent.ERROR_IO, >> SpiceClientGLib.ChannelEvent.ERROR_LINK, >> > This just duplicates similar code in SpiceDisplay.close(), should we call that > instead? here we close just the main channel, instead SpiceDisplay.close() does more things and if I just use it then the auth won't work. If you prefer, I can amend this code to factor out the common code in a function: diff --git a/virtManager/console.py b/virtManager/console.py index 030a5c1..a214538 100644 --- a/virtManager/console.py +++ b/virtManager/console.py @@ -377,6 +377,13 @@ class SpiceViewer(Viewer): self._display.set_property("grab-keyboard", self.config.get_keyboard_grab_default()) + def close_main_channel(self): + for i in self._main_channel_hids: + self.main_channel.handler_disconnect(i) + self._main_channel_hids = [] + + self.main_channel = None + def close(self): if self.spice_session is not None: self.spice_session.disconnect() @@ -387,11 +394,7 @@ class SpiceViewer(Viewer): self._display = None self._display_channel = None - for i in self._main_channel_hids: - self.main_channel.handler_disconnect(i) - self._main_channel_hids = [] - - self.main_channel = None + self.close_main_channel() self.usbdev_manager = None def is_open(self): @@ -405,10 +408,7 @@ class SpiceViewer(Viewer): self.console.disconnected() elif event == SpiceClientGLib.ChannelEvent.ERROR_AUTH: self.console.activate_auth_page() - for i in self._main_channel_hids: - self.main_channel.handler_disconnect(i) - self._main_channel_hids = [] - self.main_channel = None + self.close_main_channel() elif event in [SpiceClientGLib.ChannelEvent.ERROR_CONNECT, SpiceClientGLib.ChannelEvent.ERROR_IO, SpiceClientGLib.ChannelEvent.ERROR_LINK, Thanks, Giuseppe _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list