~ruther/dwl

ba7dcb2dea2d5dc46b73b6b9194daab94a325a05 — Leonardo Hernández Hernández 2 years ago c8a9f63
don't try to move outputs when its x,y hasn't change

when using wlr_output_layout_move() wlroots internally
change the state of the output to manually configured and
when updating the layout these outputs aren't ignored by
wlroots, leaving us at our own
1 files changed, 6 insertions(+), 2 deletions(-)

M dwl.c
M dwl.c => dwl.c +6 -2
@@ 1607,6 1607,7 @@ outputmgrapplyortest(struct wlr_output_configuration_v1 *config, int test)
	/* Then enable outputs that need to */
	wl_list_for_each(config_head, &config->heads, link) {
		struct wlr_output *wlr_output = config_head->state.output;
		Monitor *m = wlr_output->data;
		if (!config_head->state.enabled)
			continue;



@@ 1619,8 1620,11 @@ outputmgrapplyortest(struct wlr_output_configuration_v1 *config, int test)
					config_head->state.custom_mode.height,
					config_head->state.custom_mode.refresh);

		wlr_output_layout_move(output_layout, wlr_output,
				config_head->state.x, config_head->state.y);
		/* Don't move monitors if position wouldn't change, this to avoid
		 * wlroots marking the output as manually configured */
		if (m->m.x != config_head->state.x || m->m.y != config_head->state.y)
			wlr_output_layout_move(output_layout, wlr_output,
					config_head->state.x, config_head->state.y);
		wlr_output_set_transform(wlr_output, config_head->state.transform);
		wlr_output_set_scale(wlr_output, config_head->state.scale);


Do not follow this link