]> git.madduck.net Git - etc/awesome.git/blobdiff - helpers.lua

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

imap: password can now be a string, a table or a function to execute
[etc/awesome.git] / helpers.lua
index 9755dc0405e072980b6e937d8e47acb8206c0432..0305722bf99fb0cd170c25ff58873c74fb9b3108 100644 (file)
@@ -92,8 +92,9 @@ end
 
 helpers.timer_table = {}
 
-function helpers.newtimer(_name, timeout, fun, nostart)
-    local name = timeout
+function helpers.newtimer(name, timeout, fun, nostart, stoppable)
+    if not name or #name == 0 then return end
+    name = (stoppable and name) or timeout
     if not helpers.timer_table[name] then
         helpers.timer_table[name] = timer({ timeout = timeout })
         helpers.timer_table[name]:start()
@@ -102,6 +103,7 @@ function helpers.newtimer(_name, timeout, fun, nostart)
     if not nostart then
         helpers.timer_table[name]:emit_signal("timeout")
     end
+    return stoppable and helpers.timer_table[name]
 end
 
 -- }}}
@@ -175,12 +177,10 @@ function helpers.spairs(t)
     end
 end
 
--- create a lain textbox widget
+-- create a lain textbox
 function helpers.make_widget_textbox()
-    local w = wibox.widget.textbox('')
-    local t = wibox.widget.base.make_widget(w)
-    t.widget = w
-    return t
+    local w = { widget = wibox.widget.textbox() }
+    return setmetatable(w, { __index = w.widget })
 end
 
 -- }}}