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.
dev
Alexander Larsson 12 years ago committed by Kristian Høgsberg
parent c584fa60d4
commit d68f523f30
  1. 18
      clients/window.c
  2. 3
      clients/window.h

@ -1468,6 +1468,22 @@ window_get_buffer_scale(struct window *window)
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
@ -4384,6 +4400,8 @@ window_show_menu(struct display *display,
menu->window = window;
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->count = count;
menu->release_count = 0;

@ -260,6 +260,9 @@ void
window_set_buffer_scale(struct window *window,
uint32_t scale);
uint32_t
window_get_output_scale(struct window *window);
void
window_destroy(struct window *window);

Loading…
Cancel
Save