window: Add window_get_output_scale()
This lets you find the maximal scale for all the outputs a window is on, which is useful for picking a buffer_scale.
This commit is contained in:
committed by
Kristian Høgsberg
parent
c584fa60d4
commit
d68f523f30
@@ -1468,6 +1468,22 @@ window_get_buffer_scale(struct window *window)
|
|||||||
return window->main_surface->buffer_scale;
|
return window->main_surface->buffer_scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t
|
||||||
|
window_get_output_scale(struct window *window)
|
||||||
|
{
|
||||||
|
struct window_output *window_output;
|
||||||
|
struct window_output *window_output_tmp;
|
||||||
|
int scale = 1;
|
||||||
|
|
||||||
|
wl_list_for_each_safe(window_output, window_output_tmp,
|
||||||
|
&window->window_output_list, link) {
|
||||||
|
if (window_output->output->scale > scale)
|
||||||
|
scale = window_output->output->scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
return scale;
|
||||||
|
}
|
||||||
|
|
||||||
static void frame_destroy(struct frame *frame);
|
static void frame_destroy(struct frame *frame);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -4384,6 +4400,8 @@ window_show_menu(struct display *display,
|
|||||||
|
|
||||||
menu->window = window;
|
menu->window = window;
|
||||||
menu->widget = window_add_widget(menu->window, menu);
|
menu->widget = window_add_widget(menu->window, menu);
|
||||||
|
window_set_buffer_scale (menu->window, window_get_buffer_scale (parent));
|
||||||
|
window_set_buffer_transform (menu->window, window_get_buffer_transform (parent));
|
||||||
menu->entries = entries;
|
menu->entries = entries;
|
||||||
menu->count = count;
|
menu->count = count;
|
||||||
menu->release_count = 0;
|
menu->release_count = 0;
|
||||||
|
|||||||
@@ -260,6 +260,9 @@ void
|
|||||||
window_set_buffer_scale(struct window *window,
|
window_set_buffer_scale(struct window *window,
|
||||||
uint32_t scale);
|
uint32_t scale);
|
||||||
|
|
||||||
|
uint32_t
|
||||||
|
window_get_output_scale(struct window *window);
|
||||||
|
|
||||||
void
|
void
|
||||||
window_destroy(struct window *window);
|
window_destroy(struct window *window);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user