Commit Graph

25 Commits

Author SHA1 Message Date
538b48d08d fix fractional scalled buffer missing one pixel
Before 1920*1080 scaled 1.40 was giving a buffer width of 1919 pixels.

The buffer dimensions have to be ceiled here, instead of rounded.

The rest of the dimensions have to stay the same, here 1371x120.

Signed-off-by: Willow Barraco <contact@willowbarraco.fr>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2024-01-30 18:44:05 +01:00
d6439afcb9 Make font selection scheme specific
Add the members font and font_descriptor to struct clr_scheme, so that
it is possible to specify a font for each scheme.

During initialization create the font descriptors for each scheme.

Instead of initially setting the font descriptor when setting up the
buffer, set the font descriptor when drawing the text.

Signed-off-by: Frank Oltmanns <frank@oltmanns.dev>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2023-10-29 13:07:57 +01:00
a152fd036f Break on function definitions 2023-09-08 23:14:40 +02:00
fbbf563d70 Simplest clang-format 2023-09-08 22:57:14 +02:00
2747980a4e clang-format 2023-09-08 22:42:49 +02:00
7af5410235 Disable cairo antialiasing
This is unoticeable without fractional scaling, but becore a real
problem with it. It add transparency arround rectangles, and so cause
drawing problems.

Signed-off-by: Willow Barraco <contact@willowbarraco.fr>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2023-09-08 21:17:34 +02:00
730e97038c Support fractional-scale-v1
This make text less blurry. It continues to works without.

before:
https://dav.missbanal.net/00bd0fd5-e22f-4a60-87f8-ce6f400d33c9.png

after:
https://dav.missbanal.net/a3f02f1e-d6ce-4378-a141-e2093ba87eed.png
Signed-off-by: Willow Barraco <contact@willowbarraco.fr>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2023-09-08 21:17:31 +02:00
24e354ce9e Add popup to display pressed keys 2023-09-06 15:29:07 +02:00
fa659b4584 Remove black boxes
This isn't a good way to solve this, and cause restrictions and
breakages.

We should find a better way to enforce text inside of keys, probably
using a second buffer to write into.
2023-09-01 08:11:31 +02:00
3752d0e392 Fix remaining too long text cases 2023-08-31 22:25:11 +02:00
4444c6e664 Prevent writing outside of key without ellipsize 2023-08-31 22:03:51 +02:00
8f7142b171 Remove ellipsize now that we crop text outside of keys 2023-08-31 21:27:02 +02:00
c45446a794 Do not write texts outside of keys
This is a bit hacky. The main problem is that there is no way to tell
cairo to limit the width. It will wrap text accordingly to width and
height, it will add ellipsizes if it overlow the box, but if a word
width is larger than the box width, it will write it.

To avoid that, I make sure we don't go too much to the left, and I
redraw the background at the right of the keys. This is not visible
cause we damage track correctly the updated buffer coordinates.

I also moved the damage tracking from do_rectangle and draw_text to
higher draw_key and draw_layout.
2023-08-31 18:04:26 +02:00
1843e60a74 only commit surface when it changed
Previously wvkbd would commit an (usually) unchanged surface at the
framerate of the compositor, this only commits the buffer when we render
something new.

Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2022-07-05 22:13:21 +02:00
849f4600e9 project: rerun clang-format
TODO make a commit or PR hook for this
2022-06-13 21:55:47 +02:00
564eb4536a overlapped key output: highlight letters swiped through 2022-01-10 03:08:06 +00:00
bb1eff09be applied clang-format (no functional changes), but exempted custom include order in keyboard.c and main.c 2021-10-19 23:12:01 -07:00
450d43ff44 Handle hide and show signals 2021-10-19 23:12:01 -07:00
5fb98bd005 Do not set scale everyframe 2021-10-19 23:12:01 -07:00
4ce0cf1b53 Better damage tracking 2021-10-19 23:12:01 -07:00
b65ea995f1 Simplify ctx initializer 2021-10-19 23:12:01 -07:00
32cf611c9c Remove useless cb 2021-10-19 23:12:01 -07:00
fb82daea9c Handle output scaling 2021-10-19 23:12:01 -07:00
c806023fd5 Drop wld and implement our own pangocairo renderer 2021-10-19 23:12:01 -07:00
590b75b23a Init 2020-09-13 04:44:15 -07:00