[meld] meldwindow: Save and restore window maximisation state (bgo#731693)



commit 05323e0e79445ce0c8ebb746eb8edfbd662153e6
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun Jul 13 10:26:36 2014 +1000

    meldwindow: Save and restore window maximisation state (bgo#731693)

 data/org.gnome.meld.gschema.xml |   10 ++++++++++
 meld/meldwindow.py              |    7 +++++++
 2 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/data/org.gnome.meld.gschema.xml b/data/org.gnome.meld.gschema.xml
index 86144d7..e30654d 100644
--- a/data/org.gnome.meld.gschema.xml
+++ b/data/org.gnome.meld.gschema.xml
@@ -29,6 +29,16 @@
           <default>(-1, -1)</default>
           <summary>Default window size</summary>
       </key>
+
+      <key name="window-state" type="s">
+          <choices>
+            <choice value="normal"/>
+            <choice value="maximized"/>
+          </choices>
+          <default>"normal"</default>
+          <summary>Default window state</summary>
+      </key>
+
       <key name="toolbar-visible" type="b">
           <default>true</default>
           <summary>Show toolbar</summary>
diff --git a/meld/meldwindow.py b/meld/meldwindow.py
index 2b6f3a6..6638c25 100644
--- a/meld/meldwindow.py
+++ b/meld/meldwindow.py
@@ -210,6 +210,9 @@ class MeldWindow(gnomeglade.Component):
         self.scheduler.connect("runnable", self.on_scheduler_runnable)
         window_size = settings.get_value('window-size')
         self.widget.set_default_size(window_size[0], window_size[1])
+        window_state = settings.get_string('window-state')
+        if window_state == 'maximized':
+            self.widget.maximize()
         self.ui.ensure_update()
         self.diff_handler = None
         self.undo_handlers = tuple()
@@ -385,6 +388,10 @@ class MeldWindow(gnomeglade.Component):
             variant = GLib.Variant('(ii)', (event.width, event.height))
             settings.set_value('window-size', variant)
 
+        maximised = state & Gdk.WindowState.MAXIMIZED
+        window_state = 'maximized' if maximised else 'normal'
+        settings.set_string('window-state', window_state)
+
     def on_menu_file_new_activate(self, menuitem):
         self.append_new_comparison()
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]