awful.tooltip: add margin around text

Closes https://github.com/awesomeWM/awesome/pull/321.
This commit is contained in:
Daniel Hahler 2015-07-15 18:47:20 +02:00
parent 8917972c16
commit 3c1871b91f
1 changed files with 11 additions and 1 deletions

View File

@ -48,6 +48,7 @@ local a_placement = require("awful.placement")
local beautiful = require("beautiful") local beautiful = require("beautiful")
local textbox = require("wibox.widget.textbox") local textbox = require("wibox.widget.textbox")
local background = require("wibox.widget.background") local background = require("wibox.widget.background")
local dpi = require("beautiful").xresources.apply_dpi
local setmetatable = setmetatable local setmetatable = setmetatable
local ipairs = ipairs local ipairs = ipairs
@ -82,6 +83,8 @@ local function set_geometry(self)
local my_geo = self.wibox:geometry() local my_geo = self.wibox:geometry()
-- calculate width / height -- calculate width / height
local n_w, n_h = self.textbox:fit(-1, -1) local n_w, n_h = self.textbox:fit(-1, -1)
n_w = n_w + self.marginbox.left + self.marginbox.right
n_h = n_h + self.marginbox.top + self.marginbox.bottom
if my_geo.width ~= n_w or my_geo.height ~= n_h then if my_geo.width ~= n_w or my_geo.height ~= n_h then
self.wibox:geometry({ width = n_w, height = n_h }) self.wibox:geometry({ width = n_w, height = n_h })
end end
@ -177,6 +180,8 @@ end
-- @tparam table args.objects A list of objects linked to the tooltip. -- @tparam table args.objects A list of objects linked to the tooltip.
-- @tparam number args.delay_show Delay showing the tooltip by this many -- @tparam number args.delay_show Delay showing the tooltip by this many
-- seconds. -- seconds.
-- @tparam integer args.margin_leftright The left/right margin for the text.
-- @tparam integer args.margin_topbottom The top/bottom margin for the text.
-- @return The created tooltip. -- @return The created tooltip.
-- @see add_to_object -- @see add_to_object
-- @see set_timeout -- @see set_timeout
@ -237,7 +242,12 @@ tooltip.new = function(args)
self.textbox:set_font(font) self.textbox:set_font(font)
self.background = background(self.textbox) self.background = background(self.textbox)
self.background:set_fg(fg) self.background:set_fg(fg)
self.wibox:set_widget(self.background)
-- Add margin.
local m_lr = args.margin_leftright or math.ceil(dpi(5))
local m_tb = args.margin_topbottom or math.ceil(dpi(3))
self.marginbox = wibox.layout.margin(self.background, m_lr, m_lr, m_tb, m_tb)
self.wibox:set_widget(self.marginbox)
-- add some signals on both the tooltip and widget -- add some signals on both the tooltip and widget
self.wibox:connect_signal("mouse::enter", data[self].hide) self.wibox:connect_signal("mouse::enter", data[self].hide)