Commit Graph

43 Commits

Author SHA1 Message Date
532a29816b
Show PAM messages 2024-11-09 10:05:16 -06:00
Manuel Stoeckl
10ab8b2740 Estimate buffer size in advance for render_frame
The size of the surface used to draw the indicator depends on
the extents of the text being drawn on and under the indicator.

This commit refactors the `render_frame` function so that the surface
size is computed before drawing; before, `render_frame` drew onto a
buffer, estimated the size the buffer should have had, and recursively
called itself to try again with the estimated size, if necessary. This
was done because Cairo's methods to estimate font and text size
require that a cairo_t context object and an associated cairo_surface
already have been set up. Since the surface size depends on the text
size, the natural way to use Cairo would have a circular dependency.

In order to compute sizes _before_ the buffer is created, this commit
adds a 1x1 surface and a matching `test_cairo` context which is set to
the same font and drawing parameters as the buffer that will be
created. Font/text extent measurements should give the same results as
for the final buffer.
2023-01-27 12:19:32 +01:00
Manuel Stoeckl
b4e3a2b0fd Remove overridden surface attachment
The removed lines had no effect, since later in `render_frame`
buffer->buffer is attached to surface->child.
2023-01-27 12:19:32 +01:00
sonny
226244e93c Fix capitalization. 2022-11-21 16:31:11 +01:00
Alexander Orzechowski
5c1b16b957 renderer: work with current buffer locally
No need to store this globally accessible struct member.
2022-11-14 21:06:41 +01:00
Johan Malm
06d22a8dea Remove redundant function render_frames() 2022-03-20 22:54:39 +01:00
Michael Swiger
7ac62ebda1 Prevent attaching and committing the surface twice 2021-07-05 22:56:20 +02:00
Michael Swiger
4088033ff6 Fix indicator buffer not resizing after display powers off 2021-07-05 22:56:20 +02:00
Simon Plakolb
9754241080 Ensure buffer size is multiple of buffer scale
An odd value of fe.height lead to the indicator disappearing. This was
due to the buffer size no longer being a multiple of the buffer scale.
This commit fixes the issue by checking both height and width to be a
multiple of scale.

This is done early to avoid excessive re-calls of create_buffer if the
buffer_height != new_height in render.c line 314 (now 318).
2021-07-05 14:43:26 +02:00
loserMcloser
bac71d9c8d Draw ring and inner fill separately 2021-06-22 19:30:11 +02:00
Elyes HAOUAS
baa1ae99df Fix some typos
Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr>
2021-04-12 21:28:59 +02:00
Simon Ser
9d3da72a39 Use wl_surface.damage_buffer
We incorrectly used the buffer size instead of the surface size.
Let's not bother and just damage the maximum region.
2021-02-17 16:50:38 +01:00
Matt Della
a7404e1096 Added option to adjust ring position via CLI arguments and the config file 2019-11-27 19:53:07 -05:00
Alexander Martin
666ae950bc Adds option to show indicator even if idle 2019-08-04 02:15:49 -04:00
Martin Dørum
080e8356b7 properly fix indicator position 2019-07-20 10:06:33 +03:00
Martin Dørum
25ce4b12bb fix indicator position 2019-06-28 10:27:34 -04:00
Abdelhakim Qbaich
89b214612c Resizable buffer size for the subsurface 2019-06-22 22:36:53 +03:00
Abdelhakim Qbaich
e049fa4868 Minor edits 2019-06-22 22:36:53 +03:00
Peter Kasza
183d1bd549 Add fixed font-size option for indicator
This commit adds a new command line option called --font-size to
specify a fixed font size in the indicator. The default value for
font-size is 0, which means that the text will autoscale. Any other
positive value will result in a fixed text size.
2019-05-05 09:25:59 -06:00
bbgun7
86f4fea55e Added hide keyboard layout option 2019-04-22 10:34:19 -07:00
Geoff Greer
98e5afe364 Fix lock indicator position on hidpi screens. 2019-04-03 01:15:51 -04:00
Anders Nylander
7d5a73b0a9 Decouple the drawing of the background from drawing the indicator.
* Render background only once in main wl_surface
* Render indicator on subsurface
2019-03-20 23:07:31 +02:00
Dominik Bendle
a052a56bc2 Display xkb layout while typing
Displays the current keyboard layout below the unlock indicator if more
than one xkb layout is configured or the show-keyboard-layout option is
given. The text is displayed with a background box.

Adds commandline options for text color, background color and border
color of the box as well.
2019-02-06 01:42:49 +01:00
Dominik Bendle
40e9098a74 Add option show-failed-attempts
Keeps track of unsuccessful authentication attempts via an int counter
in the state struct. Displays on the unlock indicator, but will be
replaced by the Caps Lock text if enabled.
2019-01-29 20:44:32 +01:00
v44r
ecc8402c43 Fix vertical align of text inside the circle 2019-01-28 14:28:08 -05:00
Dominik Bendle
c2b99768e9 Allow setting both background image and colour
The -c/--color option no longer sets BACKGROUND_MODE_SOLID_COLOR (which
disables the background image) and the background color is now set in
all cases. One can still use --scaling solid_color to disable display of
a background image.

As a consequence, there is now only one possible default background
colour (white), regardless of whether a background image is given or not.
2019-01-25 10:30:13 +01:00
Robinhuett
1e7696fceb Add caps lock state to indicator
This implements customization for the indicator as proposed in sway#2788 with comments from sway#3367 in mind.
The default behaviour does not change exept for the caps lock text color.
Since these changes seem to be lost in the split I've remade them.
2019-01-14 16:51:04 +01:00
Drew DeVault
b90637e2a6 Convert swaylock into standalone project 2019-01-13 21:16:47 -05:00
emersion
8191c2147b Replace _XOPEN_SOURCE with _POSIX_C_SOURCE
And make sure we don't define both in the same source file.
2018-11-25 17:19:43 +01:00
Geoff Greer
1ba79a159e swaybar, swaylock, & tree/container: Set cairo font options to render text and lines with subpixel hinting (if available). 2018-09-22 11:34:21 -07:00
Brian Ashworth
77cf57ae14 Implement swaylock customization flags 2018-07-10 21:29:15 -04:00
Bor Grošelj Simić
0978661a1b Fix transparency in background images in swaylock 2018-07-04 12:09:05 +02:00
Bor Grošelj Simić
175c21d36d Fix #1857 2018-07-04 01:53:32 +02:00
emersion
515f03c94c swaylock: implement a proper render loop 2018-05-27 13:39:38 +01:00
emersion
8eca011fa7 swaylock: don't try to render unconfigured surfaces 2018-05-23 22:55:57 +01:00
Ryan Dwyer
3afd535a3b Swaylock: Allow per-output images 2018-05-20 22:54:09 +10:00
Mattias Eriksson
52e2575d19 Improved key handling in swaylock
Make escape clear buffer
Add indicator states for ctrl,shift,super et al
Add CapsLock indicator
2018-04-24 15:40:30 +02:00
Drew DeVault
f39499b139 Address review feedback from @emersion 2018-04-04 18:52:44 -04:00
Drew DeVault
495fcb627a Import stdlib.h and define POSIX macro for rand() 2018-04-04 18:47:49 -04:00
Drew DeVault
2c6703cd41 Move extra roundtrip into password.c 2018-04-04 18:47:49 -04:00
Drew DeVault
61b2e71c0c Add hidpi support to swaylock 2018-04-04 18:47:48 -04:00
Drew DeVault
d9287eb53b R E N D E R I N G 2018-04-04 18:47:48 -04:00
Drew DeVault
3f21cd441b Add password buffer, refactor rendering/surfaces 2018-04-04 18:47:48 -04:00