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).
This commit is contained in:
parent
bac71d9c8d
commit
9754241080
4
render.c
4
render.c
@ -311,6 +311,10 @@ void render_frame(struct swaylock_surface *surface) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure buffer size is multiple of buffer scale - required by protocol
|
||||||
|
new_height += surface->scale - (new_height % surface->scale);
|
||||||
|
new_width += surface->scale - (new_width % surface->scale);
|
||||||
|
|
||||||
if (buffer_width != new_width || buffer_height != new_height) {
|
if (buffer_width != new_width || buffer_height != new_height) {
|
||||||
destroy_buffer(surface->current_buffer);
|
destroy_buffer(surface->current_buffer);
|
||||||
surface->indicator_width = new_width;
|
surface->indicator_width = new_width;
|
||||||
|
Loading…
Reference in New Issue
Block a user