wibox.layout.flex: fix the fit function
The fit function of the flex layout is different from the fixed.fit one. Signed-off-by: Lukáš Hrázký <lukkash@email.cz> Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
9d333113dd
commit
f6d9443c5d
|
@ -5,7 +5,6 @@
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
local base = require("wibox.layout.base")
|
local base = require("wibox.layout.base")
|
||||||
local fixed = require("wibox.layout.fixed")
|
|
||||||
local widget_base = require("wibox.widget.base")
|
local widget_base = require("wibox.widget.base")
|
||||||
local table = table
|
local table = table
|
||||||
local pairs = pairs
|
local pairs = pairs
|
||||||
|
@ -18,8 +17,6 @@ local function round(x)
|
||||||
return floor(x + 0.5)
|
return floor(x + 0.5)
|
||||||
end
|
end
|
||||||
|
|
||||||
flex.fit = fixed.fit
|
|
||||||
|
|
||||||
--- Draw a flex layout. Each widget gets an equal share of the available space.
|
--- Draw a flex layout. Each widget gets an equal share of the available space.
|
||||||
-- @param wibox The wibox that this widget is drawn to.
|
-- @param wibox The wibox that this widget is drawn to.
|
||||||
-- @param cr The cairo context to use.
|
-- @param cr The cairo context to use.
|
||||||
|
@ -64,6 +61,31 @@ function flex:add(widget)
|
||||||
self._emit_updated()
|
self._emit_updated()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Fit the flex layout into the given space.
|
||||||
|
-- @param orig_width The available width.
|
||||||
|
-- @param orig_height The available height.
|
||||||
|
function flex:fit(orig_width, orig_height)
|
||||||
|
local used_max = 0
|
||||||
|
|
||||||
|
for k, v in pairs(self.widgets) do
|
||||||
|
local w, h = v:fit(orig_width, orig_height)
|
||||||
|
local max
|
||||||
|
if self.dir == "y" then
|
||||||
|
max = w
|
||||||
|
else
|
||||||
|
max = h
|
||||||
|
end
|
||||||
|
if max > used_max then
|
||||||
|
used_max = max
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.dir == "y" then
|
||||||
|
return used_max, orig_height
|
||||||
|
end
|
||||||
|
return orig_width, used_max
|
||||||
|
end
|
||||||
|
|
||||||
function flex:reset()
|
function flex:reset()
|
||||||
for k, v in pairs(self.widgets) do
|
for k, v in pairs(self.widgets) do
|
||||||
v:disconnect_signal("widget::updated", self._emit_updated)
|
v:disconnect_signal("widget::updated", self._emit_updated)
|
||||||
|
|
Loading…
Reference in New Issue