Open Elv13 opened 9 years ago
I have something like this. I open some vertical menu and click some item ( to apply my custom state ). Then hide menu and change state by some global keybind. Open menu again and there is not updated unless a moveover is done. If you remove the calling cache_pixmap(item) from module:setup_item in layout/vertical.lua then it works fine. In my case i just replaced all "item.selected and 8888 or 999" in cache_pixmap with "((item.selected and 8888) or (item.state[101] and 29999) or 999)" to cache my state too ( i hope that it is correct way ). I think that fix for "bar" is close to this.
Umm, I am kind of stuck in a corner with that. If I remove the cache, then some systems will become unusable again. I will try to find where to update the cache to avoid this. There is patchset by @psychon for Awesome 3.6 to address the abusive redraw issue. Once this become reality and Radical is ported, then I might have some extra headroom to turn off most widgets caches without loosing too much performances. Some recent-ish Awesome commit also add fit() size caching and draw during the next even loop run to lower the amount of duplicate and redundant draw() calls. But this is not enough for very complex widgets with expensive visual effects (and lets not even get into animations).
In the "bar" menu style, itemstyle redraw is not called often enough
step to reproduce:
1) Open a tag in the taglist 2) Set the holo style 3) rename it 4) it is not updated unless a mouseover is done