X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/eac077ace2153bc949a304d91fa1e899108a4b30..93b31ef0e9851f593984657c0215ba2ed6488b2a:/util/separators.lua

diff --git a/util/separators.lua b/util/separators.lua
index 0eb0658..465132d 100644
--- a/util/separators.lua
+++ b/util/separators.lua
@@ -1,34 +1,39 @@
-
 --[[
-                                                   
-     Licensed under GNU General Public License v2  
-      * (c) 2015,      luke bonham                 
-      * (c) 2015,      plotnikovanton              
-                                                   
+
+     Licensed under GNU General Public License v2
+      * (c) 2015, Luca CPZ
+      * (c) 2015, plotnikovanton
+
 --]]
 
-local wibox     = require("wibox")
-local beautiful = require("beautiful")
-local gears     = require("gears")
+local wibox = require("wibox")
+local gears = require("gears")
 
--- Lain cairo separators util submodule
+-- Lain Cairo separators util submodule
 -- lain.util.separators
-local separators = {}
-
-local height = beautiful.awful_widget_height or 0
-local width  = beautiful.separators_width or 9
+local separators = { height = 0, width = 9 }
 
 -- [[ Arrow
 
 -- Right
 function separators.arrow_right(col1, col2)
     local widget = wibox.widget.base.make_widget()
+    widget.col1 = col1
+    widget.col2 = col2
+
+    widget.fit = function(m, w, h)
+        return separators.width, separators.height
+    end
 
-    widget.fit = function(m, w, h) return width, height end
+    widget.update = function(col1, col2)
+        widget.col1 = col1
+        widget.col2 = col2
+        widget:emit_signal("widget::redraw_needed")
+    end
 
     widget.draw = function(mycross, wibox, cr, width, height)
-        if col2 ~= "alpha" then
-            cr:set_source_rgb(gears.color.parse_color(col2))
+        if widget.col2 ~= "alpha" then
+            cr:set_source_rgb(gears.color.parse_color(widget.col2))
             cr:new_path()
             cr:move_to(0, 0)
             cr:line_to(width, height/2)
@@ -44,8 +49,8 @@ function separators.arrow_right(col1, col2)
             cr:fill()
         end
 
-        if col1 ~= "alpha" then
-            cr:set_source_rgb(gears.color.parse_color(col1))
+        if widget.col1 ~= "alpha" then
+            cr:set_source_rgb(gears.color.parse_color(widget.col1))
             cr:new_path()
             cr:move_to(0, 0)
             cr:line_to(width, height/2)
@@ -61,12 +66,22 @@ end
 -- Left
 function separators.arrow_left(col1, col2)
     local widget = wibox.widget.base.make_widget()
+    widget.col1 = col1
+    widget.col2 = col2
+
+    widget.fit = function(m, w, h)
+        return separators.width, separators.height
+    end
 
-    widget.fit = function(m, w, h) return width, height end
+    widget.update = function(col1, col2)
+        widget.col1 = col1
+        widget.col2 = col2
+        widget:emit_signal("widget::redraw_needed")
+    end
 
     widget.draw = function(mycross, wibox, cr, width, height)
-        if col1 ~= "alpha" then
-            cr:set_source_rgb(gears.color.parse_color(col1))
+        if widget.col1 ~= "alpha" then
+            cr:set_source_rgb(gears.color.parse_color(widget.col1))
             cr:new_path()
             cr:move_to(width, 0)
             cr:line_to(0, height/2)
@@ -82,14 +97,14 @@ function separators.arrow_left(col1, col2)
             cr:fill()
         end
 
-        if col2 ~= "alpha" then
+        if widget.col2 ~= "alpha" then
             cr:new_path()
             cr:move_to(width, 0)
             cr:line_to(0, height/2)
             cr:line_to(width, height)
             cr:close_path()
 
-            cr:set_source_rgb(gears.color.parse_color(col2))
+            cr:set_source_rgb(gears.color.parse_color(widget.col2))
             cr:fill()
         end
    end