diff --git a/src/virt-manager.schemas.in b/src/virt-manager.schemas.in
index f7b8ffdb9..6e1a722fb 100644
--- a/src/virt-manager.schemas.in
+++ b/src/virt-manager.schemas.in
@@ -324,5 +324,32 @@
Whether we require confirmation to remove a virtual device
+
+
+ /schemas/apps/::PACKAGE::/manager_window_height
+ /apps/::PACKAGE::/manager_window_height
+ ::PACKAGE::
+ int
+ 0
+
+
+ Default manager window height
+ Default manager window height
+
+
+
+
+ /schemas/apps/::PACKAGE::/manager_window_width
+ /apps/::PACKAGE::/manager_window_width
+ ::PACKAGE::
+ int
+ 0
+
+
+ Default manager window width
+ Default manager window width
+
+
+
diff --git a/src/virtManager/config.py b/src/virtManager/config.py
index aadbf5c82..57dbc7402 100644
--- a/src/virtManager/config.py
+++ b/src/virtManager/config.py
@@ -515,6 +515,14 @@ class vmmConfig:
return self.conf.get_list(self.conf_dir + "/connections/uris",
gconf.VALUE_STRING)
+ # Manager default window size
+ def get_manager_window_size(self):
+ w = self.conf.get_int(self.conf_dir + "/manager_window_width")
+ h = self.conf.get_int(self.conf_dir + "/manager_window_height")
+ return (w, h)
+ def set_manager_window_size(self, w, h):
+ self.conf.set_int(self.conf_dir + "/manager_window_width", w)
+ self.conf.set_int(self.conf_dir + "/manager_window_height", h)
# URI autoconnect
def get_conn_autoconnect(self, uri):
diff --git a/src/virtManager/manager.py b/src/virtManager/manager.py
index e743a2321..0d2873add 100644
--- a/src/virtManager/manager.py
+++ b/src/virtManager/manager.py
@@ -117,7 +117,9 @@ class vmmManager(gobject.GObject):
def __init__(self, config, engine):
self.__gobject_init__()
- self.window = gtk.glade.XML(config.get_glade_dir() + "/vmm-manager.glade", "vmm-manager", domain="virt-manager")
+ self.window = gtk.glade.XML((config.get_glade_dir() +
+ "/vmm-manager.glade"),
+ "vmm-manager", domain="virt-manager")
self.err = vmmErrorDialog(self.window.get_widget("vmm-manager"),
0, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE,
_("Unexpected Error"),
@@ -133,6 +135,10 @@ class vmmManager(gobject.GObject):
# allow O(1) access instead of O(n)
self.rows = {}
+ w, h = self.config.get_manager_window_size()
+ self.window.get_widget("vmm-manager").set_default_size(w or 550,
+ h or 550)
+
self.init_vmlist()
self.init_stats()
self.init_toolbar()
@@ -154,6 +160,7 @@ class vmmManager(gobject.GObject):
cfg.STATS_NETWORK),
"on_vm_manager_delete_event": self.close,
+ "on_vmm_manager_configure_event": self.window_resized,
"on_menu_file_add_connection_activate": self.new_connection,
"on_menu_file_quit_activate": self.exit_app,
"on_menu_file_close_activate": self.close,
@@ -562,6 +569,13 @@ class vmmManager(gobject.GObject):
# Action listeners #
####################
+ def window_resized(self, ignore, event):
+ # Sometimes dimensions change when window isn't visible
+ if not self.is_visible():
+ return
+
+ self.config.set_manager_window_size(event.width, event.height)
+
def exit_app(self, src=None, src2=None):
self.emit("action-exit-app")
diff --git a/src/vmm-manager.glade b/src/vmm-manager.glade
index eaf2b1f1b..562847f3e 100644
--- a/src/vmm-manager.glade
+++ b/src/vmm-manager.glade
@@ -7,6 +7,7 @@
550
550
center
+