THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.

The following task has a new comment added:

FS#1249 - dynamic tagging regression with commit 
9c69e857edb6690fe5a496e82ec57a0bbae36702
User who did this - Emmanuel Lepage Vallee (Elv13)

----------
Hello,

Yes, it is a small behavior change, but it is done for a reason, let me 
explain. In Awesome 3.5.*, the taglist widget is not using the tag signals to 
redraw itself. Instead, it watch for changes, then recompute the whole layout 
in an O(2N) operation. While this work and is a very mature code path, it is 
far from optimal and lack many extensibility capabilities wanted by some users. 
It is also hiding bugs in our signal code as it is ignoring most of them. 
Following the implementation of a new taglist widget based on the signal, some 
flaws have been found in the current awful.tag implementation. Some of those 
flaws cannot be fixed without API changes, but some other can be avoided by 
some minor changes. This is one of those (the other being the case where the 
client screen is not equal to the tag screen). Awful.tag doesn't keep a index 
list for each screen. Instead, it keep some kind of global tag table, then loop 
them to generate a tag list for a given screen. While opaque to the 
awful.widget.taglist users, this does create some collisions/mis-reordering 
issues when changing screen. Gettags before and after a screen change will then 
return a radically different table. This can be avoided by pushing the tag to 
the front/end of the list by removing its index.

While it might break a tiny minority of configs (and equally fix things for a 
minority of users), it does fix a design issue and the bugs derived from it. 
Please note that you can override awful.tag.setscreen from your rc.lua like 
this:

awful.tag.setscreen = function(tag,screen)
-- copy paste the function body from 3.5.2 here
end

The second option is to beta test the new widget, but this isn't relevant to 
this discussion.

In the end, neither reverting or keeping this change is optimal, the real fix 
will likely come in Awesome 3.6 when randr change wont cause Awesome to restart 
anymore and screen are going to be objects instead of numbers. For now, my 
opinion is that this change fix more issues than it cause. You can always get 
the index property by hand and restore it, while you can't fix the collision if 
you don't reset it first.


-- Emmanuel
----------

More information can be found at the following URL:
https://awesome.naquadah.org/bugs/index.php?do=details&task_id=1249#comment3978

You are receiving this message because you have requested it from the Flyspray 
bugtracking system.  If you did not expect this message or don't want to 
receive mails in future, you can change your notification settings at the URL 
shown above.

--
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.

Reply via email to