Grab devices
This commit is contained in:
parent
541c5bedec
commit
a8e8bacdca
1 changed files with 17 additions and 0 deletions
|
@ -50,6 +50,11 @@ class LockWindow(Gtk.Window):
|
||||||
|
|
||||||
self.reset(True)
|
self.reset(True)
|
||||||
|
|
||||||
|
self.display = Gdk.Display.get_default()
|
||||||
|
self.deviceManager = self.display.get_device_manager()
|
||||||
|
|
||||||
|
self.unlockWindow.connect('map-event', self._grab_devices)
|
||||||
|
|
||||||
def _logout(self):
|
def _logout(self):
|
||||||
self.promptEntry.set_sensitive(False)
|
self.promptEntry.set_sensitive(False)
|
||||||
self.unlockButton.set_sensitive(False)
|
self.unlockButton.set_sensitive(False)
|
||||||
|
@ -99,6 +104,16 @@ class LockWindow(Gtk.Window):
|
||||||
def setAuthMessage(self, message):
|
def setAuthMessage(self, message):
|
||||||
self.messageLabel.set_label(message)
|
self.messageLabel.set_label(message)
|
||||||
|
|
||||||
|
def _grab_devices(self, w, e):
|
||||||
|
for device in self.deviceManager.list_devices(Gdk.DeviceType.MASTER):
|
||||||
|
device.grab(self.unlockWindow.get_window(), Gdk.GrabOwnership.APPLICATION, False, Gdk.EventMask.ALL_EVENTS_MASK, None, Gdk.CURRENT_TIME)
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def _ungrab_devices(self):
|
||||||
|
for device in self.deviceManager.list_devices(Gdk.DeviceType.MASTER):
|
||||||
|
device.ungrab(Gdk.CURRENT_TIME)
|
||||||
|
|
||||||
def lock(self):
|
def lock(self):
|
||||||
self.show_all()
|
self.show_all()
|
||||||
self.unlockWindow.show_all()
|
self.unlockWindow.show_all()
|
||||||
|
@ -106,6 +121,8 @@ class LockWindow(Gtk.Window):
|
||||||
self.promptEntry.grab_focus()
|
self.promptEntry.grab_focus()
|
||||||
|
|
||||||
def unlock(self):
|
def unlock(self):
|
||||||
|
self._ungrab_devices()
|
||||||
|
|
||||||
self.unlockWindow.hide()
|
self.unlockWindow.hide()
|
||||||
self.hide()
|
self.hide()
|
||||||
|
|
||||||
|
|
Reference in a new issue