This is a feature request from the chat. Right now, only deprecated
hacks allow this to be implemented. This is a valid use case and
must be supported for HiDPI use cases.
It is now handled by the `wibox.container.border`. The current
implementation had many unhandled corner case and is less
flexible than the new API.
Some might argue deprecating the background from a background
container is... strange. This is true. However, keeing all
use case within the same codebase would make it too large.
The `gears.shape` support is incompatible with the border
widgets (which are used to implement the background images).
Rather than bloat the `background` container with another 1k lines,
a new container is added. The goal is to implement CSS-style slicing
for the background images. The container also allows to place
generic widgets on each sides and corners of the container.
The main use case for this container is to replace the old
`awful.titlebar` API with `awful.decoration`. That new module will
allow a central client widget to be surrounded by widgets rather than
have 4 separate drawing areas. The border container is designed to
make complex border+titlebar setup trivial.
This will be used soon by a nice CSS inspired image slicer
container/layout.
They have a limitation inherited from Cairo of only working on a
single axis. This isn't important for 99% of the use case.
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)