X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/d070b7bd356a3e797adf17443269904e379387ca..b5352ef66f705de91157d4583eee728e4cbef8cb:/util/quake.lua

diff --git a/util/quake.lua b/util/quake.lua
index 38b9917..01891b0 100644
--- a/util/quake.lua
+++ b/util/quake.lua
@@ -1,20 +1,17 @@
 --[[
 
      Licensed under GNU General Public License v2
-      * (c) 2016, Luke Bonham
+      * (c) 2016, Luca CPZ
       * (c) 2015, unknown
 
 --]]
 
 local awful        = require("awful")
 local capi         = { client = client }
-
-local math         = { floor  = math.floor }
-local string       = { format = string.format }
-
+local math         = math
+local string       = string
 local pairs        = pairs
 local screen       = screen
-
 local setmetatable = setmetatable
 
 -- Quake-like Dropdown application spawn
@@ -63,7 +60,7 @@ function quake:display()
     client.floating = true
     client.border_width = self.border
     client.size_hints_honor = false
-    client:geometry(self.geometry[self.screen] or self:compute_size())
+    client:geometry(self.geometry[self.screen.index] or self:compute_size())
 
     -- Set not sticky and on top
     client.sticky = false
@@ -95,12 +92,12 @@ end
 
 function quake:compute_size()
     -- skip if we already have a geometry for this screen
-    if not self.geometry[self.screen] then
+    if not self.geometry[self.screen.index] then
         local geom
         if not self.overlap then
-            geom = screen[self.screen].workarea
+            geom = screen[self.screen.index].workarea
         else
-            geom = screen[self.screen].geometry
+            geom = screen[self.screen.index].geometry
         end
         local width, height = self.width, self.height
         if width  <= 1 then width = math.floor(geom.width * width) - 2 * self.border end
@@ -112,9 +109,9 @@ function quake:compute_size()
         if     self.vert == "top"    then y = geom.y
         elseif self.vert == "bottom" then y = geom.height + geom.y - height
         else   y = geom.y + (geom.height - height)/2 end
-        self.geometry[self.screen] = { x = x, y = y, width = width, height = height }
+        self.geometry[self.screen.index] = { x = x, y = y, width = width, height = height }
     end
-    return self.geometry[self.screen]
+    return self.geometry[self.screen.index]
 end
 
 function quake:new(config)
@@ -158,7 +155,10 @@ function quake:toggle()
      if self.followtag then self.screen = awful.screen.focused() end
      local current_tag = self.screen.selected_tag
      if current_tag and self.last_tag ~= current_tag and self.visible then
-         self:display():move_to_tag(current_tag)
+         local c=self:display()
+         if c then
+            c:move_to_tag(current_tag)
+        end
      else
          self.visible = not self.visible
          self:display()