mirror of
https://codeberg.org/vyivel/dulcepan/
synced 2026-04-26 21:14:40 +03:00
Apply output scale correctly
This commit is contained in:
11
src/output.c
11
src/output.c
@@ -43,6 +43,8 @@ static void layer_surface_handle_configure(void *data, struct zwlr_layer_surface
|
||||
output->effective_width = (int)width;
|
||||
output->effective_height = (int)height;
|
||||
|
||||
output->scale = (double)output->transformed_width / output->effective_width;
|
||||
|
||||
wp_viewport_set_destination(
|
||||
output->main_viewport, output->effective_width, output->effective_height);
|
||||
wp_viewport_set_destination(
|
||||
@@ -276,10 +278,11 @@ static void redraw(struct dp_output *output) {
|
||||
if (output == selection->output) {
|
||||
int border_size = config->border_size;
|
||||
if (border_size != 0) {
|
||||
cairo_set_line_width(buffer->cairo, border_size);
|
||||
double off = border_size / 2.0;
|
||||
double scaled_size = border_size * output->scale;
|
||||
cairo_set_line_width(buffer->cairo, scaled_size);
|
||||
double off = scaled_size / 2.0;
|
||||
cairo_rectangle(buffer->cairo, selection->x - off, selection->y - off,
|
||||
selection->width + border_size, selection->height + border_size);
|
||||
selection->width + scaled_size, selection->height + scaled_size);
|
||||
set_cairo_color(buffer->cairo, config->border_color);
|
||||
cairo_stroke(buffer->cairo);
|
||||
}
|
||||
@@ -292,7 +295,7 @@ static void redraw(struct dp_output *output) {
|
||||
|
||||
wl_surface_attach(output->select_surface, buffer->wl_buffer, 0, 0);
|
||||
wl_surface_damage(
|
||||
output->select_surface, 0, 0, output->transformed_width, output->transformed_height);
|
||||
output->select_surface, 0, 0, output->effective_width, output->effective_height);
|
||||
|
||||
output->redraw_callback = wl_surface_frame(output->select_surface);
|
||||
wl_callback_add_listener(output->redraw_callback, &redraw_callback_listener, output);
|
||||
|
||||
Reference in New Issue
Block a user