tag: Fix :delete() when there is no clients

The logic was broken. It prevented tags from being deleted.

This also make sure the boolean return value is always set.
This commit is contained in:
Emmanuel Lepage Vallee 2016-08-28 19:00:54 -04:00
parent d2988d1aab
commit 2af0553b67
1 changed files with 4 additions and 5 deletions

View File

@ -259,15 +259,14 @@ end
-- stickied tags to.
-- @tparam[opt=false] boolean force Move even non-sticky clients to the fallback
-- tag.
-- @return Returns true if the tag is successfully deleted, nil otherwise.
-- @return Returns true if the tag is successfully deleted.
-- If there are no clients exclusively on this tag then delete it. Any
-- stickied clients are assigned to the optional 'fallback_tag'.
-- If after deleting the tag there is no selected tag, try and restore from
-- history or select the first tag on the screen.
function tag.object.delete(self, fallback_tag, force)
-- abort if the taf isn't currently activated
if not self.activated then return end
if not self.activated then return false end
local target_scr = get_screen(tag.getproperty(self, "screen"))
local tags = target_scr.tags
@ -275,7 +274,7 @@ function tag.object.delete(self, fallback_tag, force)
local ntags = #tags
-- We can't use the target tag as a fallback.
if fallback_tag == self then return end
if fallback_tag == self then return false end
-- No fallback_tag provided, try and get one.
if fallback_tag == nil then
@ -284,7 +283,7 @@ function tag.object.delete(self, fallback_tag, force)
-- Abort if we would have un-tagged clients.
local clients = self:clients()
if ( #clients > 0 and ntags <= 1 ) or fallback_tag == nil then return end
if #clients > 0 and fallback_tag == nil then return false end
-- Move the clients we can off of this tag.
for _, c in pairs(clients) do