Listen to output layout change

This commit is contained in:
emersion 2017-12-12 20:02:01 +01:00
parent f3d880b0ec
commit c7abb77f22
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
7 changed files with 43 additions and 30 deletions

View file

@ -7,6 +7,7 @@
#include <wlr/types/wlr_output.h>
#include <wlr/types/wlr_output_layout.h>
#include "sway/container.h"
#include "sway/layout.h"
#include "sway/output.h"
#include "sway/view.h"
#include "list.h"
@ -14,13 +15,27 @@
swayc_t root_container;
static void output_layout_change_notify(struct wl_listener *listener, void *data) {
struct wlr_box *box = wlr_output_layout_get_box(
root_container.sway_root->output_layout, NULL);
root_container.width = box->width;
root_container.height = box->height;
}
void init_layout(void) {
root_container.id = 0; // normally assigned in new_swayc()
root_container.type = C_ROOT;
root_container.layout = L_NONE;
root_container.name = strdup("root");
root_container.children = create_list();
root_container.output_layout = wlr_output_layout_create();
root_container.sway_root = calloc(1, sizeof(*root_container.sway_root));
root_container.sway_root->output_layout = wlr_output_layout_create();
root_container.sway_root->output_layout_change.notify =
output_layout_change_notify;
wl_signal_add(&root_container.sway_root->output_layout->events.change,
&root_container.sway_root->output_layout_change);
}
void add_child(swayc_t *parent, swayc_t *child) {