diff --git a/virtManager/baseclass.py b/virtManager/baseclass.py index 84c9c79dc..ef61eb829 100644 --- a/virtManager/baseclass.py +++ b/virtManager/baseclass.py @@ -180,6 +180,13 @@ class vmmGObject(GObject.GObject): class vmmGObjectUI(vmmGObject): + @staticmethod + def bind_escape_key_close_helper(topwin, close_cb): + def close_on_escape(src_ignore, event): + if Gdk.keyval_name(event.keyval) == "Escape": + close_cb() + topwin.connect("key-press-event", close_on_escape) + def __init__(self, filename, windowname, builder=None, topwin=None): vmmGObject.__init__(self) @@ -226,8 +233,4 @@ class vmmGObjectUI(vmmGObject): pass def bind_escape_key_close(self): - def close_on_escape(src_ignore, event): - if Gdk.keyval_name(event.keyval) == "Escape": - self.close() - - self.topwin.connect("key-press-event", close_on_escape) + self.bind_escape_key_close_helper(self.topwin, self.close) diff --git a/virtManager/snapshots.py b/virtManager/snapshots.py index 4278dea12..95b51af0d 100644 --- a/virtManager/snapshots.py +++ b/virtManager/snapshots.py @@ -66,6 +66,8 @@ class vmmSnapshotPage(vmmGObjectUI): self._snapshot_new = self.widget("snapshot-new") self._snapshot_new.set_transient_for(self.topwin) + self.bind_escape_key_close_helper(self._snapshot_new, + self._snapshot_new_close) self.builder.connect_signals({ "on_snapshot_add_clicked": self._on_add_clicked, @@ -223,6 +225,7 @@ class vmmSnapshotPage(vmmGObjectUI): self.widget("snapshot-new-name").set_text(default_name) self.widget("snapshot-new-name").emit("changed") self.widget("snapshot-new-description").get_buffer().set_text("") + self.widget("snapshot-new-ok").grab_focus() def _snapshot_new_name_changed(self, src): self.widget("snapshot-new-ok").set_sensitive(bool(src.get_text()))