From 3a3057b52b172ba70142a6120a2f8a07df93b787 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Thu, 14 Apr 2011 12:25:51 -0400 Subject: [PATCH] details: Make sure aborted pause op doesn't leave UI inconsistent --- src/virtManager/details.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/virtManager/details.py b/src/virtManager/details.py index a3b535cda..6bdd7e9b7 100644 --- a/src/virtManager/details.py +++ b/src/virtManager/details.py @@ -1145,13 +1145,7 @@ class vmmDetails(vmmGObjectUI): self.window.get_widget("control-pause").set_sensitive(stop) self.window.get_widget("details-menu-pause").set_sensitive(stop) - # Set pause widget states - try: - self.ignorePause = True - self.window.get_widget("control-pause").set_active(paused) - self.window.get_widget("details-menu-pause").set_active(paused) - finally: - self.ignorePause = False + self.set_pause_state(paused) self.window.get_widget("overview-name").set_editable(not active) @@ -1220,11 +1214,20 @@ class vmmDetails(vmmGObjectUI): devtype = info.virtual_device_type self.remove_device(devtype, info) + def set_pause_state(self, paused): + # Set pause widget states + try: + self.ignorePause = True + self.window.get_widget("control-pause").set_active(paused) + self.window.get_widget("details-menu-pause").set_active(paused) + finally: + self.ignorePause = False + def control_vm_pause(self, src): if self.ignorePause: return - if src.get_active(): + if not self.vm.is_paused(): self.emit("action-suspend-domain", self.vm.get_connection().get_uri(), self.vm.get_uuid()) @@ -1233,6 +1236,9 @@ class vmmDetails(vmmGObjectUI): self.vm.get_connection().get_uri(), self.vm.get_uuid()) + # Let state handler listener change things if necc. + self.set_pause_state(not src.get_active()) + def control_vm_run(self, src_ignore): self.emit("action-run-domain", self.vm.get_connection().get_uri(), self.vm.get_uuid())