Having git submodules as source makes making releases really really
hard, since submodules are not included when downloading a tarball
from the git repository host.
The idea now is to keep a submodule of tllist under 'external', and a
static copy under 'subprojects'.
This means builds will use the static copy, while having easy access
to the git submodule makes it easy to update the static copy (git
submodule update --remote + cp -r)
run_command() was only run at configure time, meaning the generated
version (that was passed on to the sources via -DYAMBAR_VERSION)
became stale.
Fix by implementing a shell script that generates a header file, and
wrap this in a custom target that is run every time (but the generated
file is only updated when the version changes)
The progress-bar took *all* particle elements into account when
calculating the (relative) mouse position on mouse events.
This is wrong, since only the progress bar (that is, the empty and
filled cells) should be used. Not the start/end elements.
We now also pass the mouse event through to the start/end elements.
This is trivial in the Wayland backend; just instantiate a pixman
pointing to the same mmapped memory as the wayland buffer.
In the XCB backend, we change the implementation slightly; instead of
rendering via a cairo XCB surface backend (to a server side pixmap),
which is then blitted to the window in commit(), we now render to a
client-side pixman pixmap, and blit it using xcb_put_image() in
commit().
All decoration, particle and module interfaces now takes a
pixman_image_t parameter, and all drawing is done using pixman APIs.
The wayland/xcb backends implement a new interface functions,
get_pixman_image(), that should return a pixman image instance that is
suitable for rendering.
In the wayland backend, the image uses the same backing data as the
cairo surface.
In the XCB backend, we create a new image each time, and then blit it
to the cairo surface at commit time.