From 4a3589aad426ee0d242e1da5048e1b76fdb6f250 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Mon, 13 Jul 2015 23:27:24 +0200 Subject: [PATCH] widget.common.list_update: improve margins (dpi / imagebox) Use `beautiful.xresources.apply_dpi` for `common.list_update`'s textbox margins, and add a left margin for the imagebox, too. The latter is useful/nicer with the default behavior of an inverted style for the focused tasklist entry. --- lib/awful/widget/common.lua | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/awful/widget/common.lua b/lib/awful/widget/common.lua index e28f5775b..bbc7a50b1 100644 --- a/lib/awful/widget/common.lua +++ b/lib/awful/widget/common.lua @@ -17,6 +17,7 @@ local util = require("awful.util") local wibox = require("wibox") local imagebox = require("wibox.widget.imagebox") local textbox = require("wibox.widget.textbox") +local dpi = require("beautiful").xresources.apply_dpi --- Common utilities for awful widgets local common = {} @@ -56,23 +57,25 @@ function common.list_update(w, buttons, label, data, objects) w:reset() for i, o in ipairs(objects) do local cache = data[o] - local ib, tb, bgb, m, l + local ib, tb, bgb, tbm, ibm, l if cache then ib = cache.ib tb = cache.tb bgb = cache.bgb - m = cache.m + tbm = cache.tbm + ibm = cache.ibm else ib = wibox.widget.imagebox() tb = wibox.widget.textbox() bgb = wibox.widget.background() - m = wibox.layout.margin(tb, 4, 4) + tbm = wibox.layout.margin(tb, dpi(4), dpi(4)) + ibm = wibox.layout.margin(ib, dpi(4)) l = wibox.layout.fixed.horizontal() -- All of this is added in a fixed widget l:fill_space(true) - l:add(ib) - l:add(m) + l:add(ibm) + l:add(tbm) -- And all of this gets a background bgb:set_widget(l) @@ -80,17 +83,18 @@ function common.list_update(w, buttons, label, data, objects) bgb:buttons(common.create_buttons(buttons, o)) data[o] = { - ib = ib, - tb = tb, + ib = ib, + tb = tb, bgb = bgb, - m = m + tbm = tbm, + ibm = ibm, } end local text, bg, bg_image, icon = label(o) -- The text might be invalid, so use pcall. if text == nil or text == "" then - m:set_margins(0) + tbm:set_margins(0) else if not pcall(tb.set_markup, tb, text) then tb:set_markup("<Invalid text>") @@ -101,7 +105,11 @@ function common.list_update(w, buttons, label, data, objects) bg_image = bg_image(tb,o,m,objects,i) end bgb:set_bgimage(bg_image) - ib:set_image(icon) + if icon then + ib:set_image(icon) + else + ibm:set_margins(0) + end w:add(bgb) end end