This is long overdue. A bit of historical context. The grid API
is losely somewhat based on the old `radical` module, but was
heavily improved by @getzze. That version had row_span and col_span.
This made the way the previous implementation coded the border
incompatible. I spent some time back then trying to bolt it back on,
but the complexity is quite high and never made it work right.
This commit goes in another direction. Rather than draw the border,
it creates a mask where the border should *not* be, then bucket fill
the widget. This is the equivalent of CSS `border-collapse`.
It also support custom borders. This allows dashed lines and partial
borders.
The main use case will be to add border support to the calendar. It
was previously possible to partially do it using custom cell painters,
but was pretty hacky. Now that the calendar will deprecate the custom
painters in favor of `widget_template`s, a more robust alternative was
required.
The drawback of this commit is obviously the added complexity to the
most complex layout. This is why it adds many tests to cover the various
corner cases.
This is already used in the `wibox.layout.manual` layout. It makes
the widget easier to use. Previously, using the imperative syntax
was necessary for most grids.
Previously, it would raw_set properties like floating. This means the
signals and the result of calling `awful.client.property.get` was
different. Some older code uses `awful.client.property.get` or
`awful.client.object.get_floating` rather than `c.floating`.
With this change, all native properties should be handled as so
and all non native properties set at the end, after `__newindex`
is defined.
The list of properties was extracted using
cat client.c
| tail -n100
| grep -Eo '["][^"]+["]'
| grep -Eo '[^"]+'
Previously, things like `awful.screenshot` would print a false
positive warning because the `item.name` was fixed after the
linting rather than before it.
When a window is unmapped, awesome stops tracking it, possibly
leaving stale grabs behind. These grabs can be activated if the
window is mapped again without awesome’s knowledge. This results
in a locked pointer until the grab window is destroyed.
Fix by releasing passive grabs before untracking a client window.
* fix(naughty: icon: new, fit): use `icon_size` from the notification object if defined (fixes#3752)
* fixup! fix(naughty: icon: new, fit): use `icon_size` from the notification object if defined (fixes#3752)
* fixup! fixup! fix(naughty: icon: new, fit): use `icon_size` from the notification object if defined (fixes#3752)
* Fix typo in taglist.lua
Just a small typo correction from 'templete' to 'template' in the comments.
* Fix another typo in taglist.lua
Also changed 'genetate' to 'generate'
In tests/examples/wibox/widget/textbox/line_spacing.lua, there is a typo
It's supposed to be "has", but it's "shas", this is obviously not a grammar issue, so it's a typo.
The `volatile` property is supported by the taglist (theme variables
`beautiful.taglist_bg_volatile` and `beautiful.taglist_fg_volatile`)
but taglist is not updated when the property is changed.
The original documentation told me to just copy the `theme.lua` file, but that would yield the error:
![Error](https://i.imgur.com/nZVedGA.png)
I realized that the `theme.lua` by itself would call the surrounding files like so: `themes_path.. "default/example.png"
Would this change be possible?