Issue 272 - removing the dependency on pango and cairo #274
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See #272 for the details for this one. This work was initially done as an MVP in sminez/x11-draw but there are a number of modifications that are required from the code that is there in order to wire it into the statusbar widget behaviour and layout.
Breaking changes
This will be a breaking change for the current API around the status bar as a number of things are tidied up where elements of the cairo and pango APIs had bled through to the public API of
penrose_ui
(in particular, using floats for offsets and colour representation...).Draw
only supports a single primary font (fontconfig is used to find a suitable fallback for missing glyphs)Draw
andContext
structs have been modified to no longer bleed through implementation details from pango and cairo (unless you implemented your own fully customWidget
this should not affect end users)Context
is now a reference type with a lifetime, providing a view on the surface assigned to a given window.TextStyle
no longer contains font and point size fields: these are set on theDraw
TextStyle
and individualWidget
padding, height and offset fields are nowu32
notf64
TextStyle
is now a Copy type and is passed by value not by reference for all widgets and the status barTextStyle
.Version bump and alignment
There are some changes to the main
penrose
crate as well so I'm taking this as an opportunity to align the version numbers of penrose and the additional crates going forward. The APIs betweenpenrose_ui
/penrose_keysyms
andpenrose
will only be supported for matching version numbers going forward.