save window position

This commit is contained in:
Bilal Elmoussaoui 2016-06-03 15:46:30 +02:00
parent 2c3380aa49
commit a71004117d
7 changed files with 39 additions and 6 deletions

View file

@ -34,7 +34,7 @@ class Application(Gtk.Application):
GLib.set_prgname(self.package)
current_desktop = env.get("XDG_CURRENT_DESKTOP")
if current_desktop:
self.use_GMenu = current_desktop.lower() in ["gnome", "gnome-wayland"]
self.use_GMenu = current_desktop.lower() == "gnome"
else:
self.use_GMenu = False

View file

@ -31,7 +31,7 @@ class AddApplication(Gtk.Window):
self.resize(410, 300)
self.set_border_width(18)
self.set_size_request(410, 300)
self.set_position(Gtk.WindowPosition.CENTER)
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.set_resizable(False)
self.set_transient_for(self.parent)
self.connect("key_press_event", self.on_key_press)

View file

@ -29,7 +29,7 @@ class ApplicationChooserWindow(Gtk.Window):
self.connect("destroy", self.close_window)
self.resize(410, 550)
self.set_size_request(410, 550)
self.set_position(Gtk.WindowPosition.CENTER)
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.set_resizable(False)
self.set_transient_for(self.parent)
self.connect("key_press_event", self.on_key_press)

View file

@ -30,7 +30,7 @@ class PasswordWindow(Gtk.Window):
self.resize(300, 100)
self.set_border_width(18)
self.set_size_request(300, 100)
self.set_position(Gtk.WindowPosition.CENTER)
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.set_resizable(False)
self.set_transient_for(self.parent)
self.connect("key_press_event", self.on_key_press)

View file

@ -27,7 +27,7 @@ class SettingsWindow(Gtk.Window):
self.resize(410, 300)
self.set_size_request(410, 300)
self.set_resizable(False)
self.set_position(Gtk.WindowPosition.CENTER)
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.set_transient_for(self.parent)
self.connect("key_press_event", self.on_key_press)

View file

@ -57,7 +57,7 @@ class Window(Gtk.ApplicationWindow):
"""
Gtk.ApplicationWindow.__init__(self, type=Gtk.WindowType.TOPLEVEL,
application=self.app)
self.set_position(Gtk.WindowPosition.CENTER)
self.move_latest_position()
self.set_wmclass(self.app.package, "TwoFactorAuth")
self.resize(410, 550)
self.set_size_request(410, 550)
@ -620,6 +620,25 @@ class Window(Gtk.ApplicationWindow):
confirmation.destroy()
self.refresh_window()
def save_window_state(self):
"""
Save window position
"""
x, y = self.win.get_position()
self.cfg.update("position-x", x, "preferences")
self.cfg.update("position-y", y, "preferences")
def move_latest_position(self):
"""
Move the application to the latest window if found
"""
x = self.app.cfg.read("position-x", "preferences")
y = self.app.cfg.read("position-y", "preferences")
if x != 0 and y != 0:
self.move(x, y)
else:
self.set_position(Gtk.WindowPosition.CENTER)
def show_about(self, *args):
"""
Shows about dialog

View file

@ -22,6 +22,20 @@
Auto lock the application after a x seconds
</description>
</key>
<key name="position-x" type="i">
<default>0</default>
<summary>Default window postiton on x axes</summary>
<description>
Default window postiton on x axes
</description>
</key>
<key name="position-y" type="i">
<default>0</default>
<summary>Default window postiton on y axes</summary>
<description>
Default window postiton on y axes
</description>
</key>
</schema>
<schema path="/org/gnome/TwoFactorAuth/login/" id="org.gnome.TwoFactorAuth.login" gettext-domain="TwoFactorAuth">
<key name="password" type="s">