tag.add(name, props):
    make tags and pass a table of properties to apply to it

tag.new:
    modified to use add() instead of calling capi.tag

Signed-off-by: Perry Hargrave <[email protected]>
---
 lib/awful/tag.lua.in |   27 +++++++++++++++++++++++----
 1 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/lib/awful/tag.lua.in b/lib/awful/tag.lua.in
index a984ed5..9f229de 100644
--- a/lib/awful/tag.lua.in
+++ b/lib/awful/tag.lua.in
@@ -30,6 +30,24 @@ data.tags = setmetatable({}, { __mode = 'k' })
 history = {}
 history.limit = 20
 
+--- Add a tag.
+-- @param name The tag name, a string
+-- @param props The tags properties, a table
+-- @return The created tag
+function add(name, props)
+    local properties = props or {}
+    local newtag = capi.tag{name = name}
+    newtag.screen = properties.screen or capi.mouse.screen
+
+    if newtag ~= nil then
+        for k, v in pairs(properties) do
+            setproperty(newtag, k, v)
+        end
+    end
+
+    return newtag
+end
+
 --- Create a set of tags and attach it to a screen.
 -- @param names The tag name, in a table
 -- @param screen The tag screen, or 1 if not set.
@@ -39,14 +57,15 @@ function new(names, screen, layout)
     local screen = screen or 1
     local tags = {}
     for id, name in ipairs(names) do
-        tags[#tags + 1] = capi.tag { name = name }
-        tags[#tags].screen = screen
+        table.insert(tags, id, add(name, {screen = screen,
+                                            layout = (layout and layout[id]) or
+                                                        layout}))
         -- Select the first tag.
         if id == 1 then
-            tags[#tags].selected = true
+            tags[id].selected = true
         end
-        setproperty(tags[#tags], "layout", layout and (layout[#tags] or 
layout[1]) or layout)
     end
+
     return tags
 end
 
-- 
1.7.1


-- 
To unsubscribe, send mail to [email protected].

Reply via email to