diff options
Diffstat (limited to 'pager.lua')
-rw-r--r-- | pager.lua | 28 |
1 files changed, 14 insertions, 14 deletions
@@ -6,10 +6,14 @@ local wibox = require("wibox") local Page = {} -function Page:set_active(active) +function Page:set_visible(visible, this_screen) local border_color = nil - if active then - border_color = beautiful.border_focus or '#ffffff' + if visible then + if this_screen then + border_color = beautiful.border_focus or '#ffffff' + else + border_color = beautiful.border_marked or '#d00000' + end else border_color = beautiful.border_normal or '#000000' end @@ -74,7 +78,7 @@ function Page:new(tag, width, height, screen) tag:connect_signal('tagged', function (c) ret:update() end) tag:connect_signal('untagged', function (c) ret:update() end) - ret:set_active(false) + ret:set_visible(false, false) ret:update() return ret @@ -125,9 +129,14 @@ function PagerDesk:new(desktop, screen, width, height) desktop:connect_signal("page:view", function(desktop, s, page_idx) if s == ret.screen then - ret:_set_active(page_idx) title_page:set_text(string.format("%d", page_idx)) end + + ret.pages[page_idx]:set_visible(true, s == ret.screen) + end) + desktop:connect_signal("page:hide", + function(desktop, page_idx) + ret.pages[page_idx]:set_visible(false, false) end) client.connect_signal("focus", function(c) @@ -142,19 +151,10 @@ function PagerDesk:new(desktop, screen, width, height) ret.desktop = desktop ret.screen = screen - ret.active_page_idx = nil return ret end -function PagerDesk:_set_active(page_idx) - if self.active_page_idx then - self.pages[self.active_page_idx]:set_active(false) - end - self.pages[page_idx]:set_active(true) - self.active_page_idx = page_idx -end - local Pager = {} function Pager:set_desktop(desktop) |