aboutsummaryrefslogtreecommitdiff
path: root/rootston/output.c
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2017-12-14 11:20:38 +0100
committeremersion <contact@emersion.fr>2017-12-14 11:20:38 +0100
commit6ef021976384163cf9fde90d635a2e22479d107a (patch)
tree2c426fa4ce6b30b29bed1fb567ffc74a7d60009f /rootston/output.c
parent4da404818957d37fba4c0d6346a5f2f8a8e6db38 (diff)
parenta9fb071d49b244b72846b384a9e2ef2d9b03a05f (diff)
Merge branch 'master' into xwm-selection
Diffstat (limited to 'rootston/output.c')
-rw-r--r--rootston/output.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/rootston/output.c b/rootston/output.c
index aace1991..560e5eeb 100644
--- a/rootston/output.c
+++ b/rootston/output.c
@@ -6,7 +6,6 @@
#include <wlr/types/wlr_output_layout.h>
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_wl_shell.h>
-#include <wlr/types/wlr_xcursor_manager.h>
#include <wlr/types/wlr_xdg_shell_v6.h>
#include <wlr/render/matrix.h>
#include <wlr/util/log.h>
@@ -264,8 +263,15 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
static void set_mode(struct wlr_output *output,
struct roots_output_config *oc) {
- struct wlr_output_mode *mode, *best = NULL;
int mhz = (int)(oc->mode.refresh_rate * 1000);
+
+ if (wl_list_empty(&output->modes)) {
+ // Output has no mode, try setting a custom one
+ wlr_output_set_custom_mode(output, oc->mode.width, oc->mode.height, mhz);
+ return;
+ }
+
+ struct wlr_output_mode *mode, *best = NULL;
wl_list_for_each(mode, &output->modes, link) {
if (mode->width == oc->mode.width && mode->height == oc->mode.height) {
if (mode->refresh == mhz) {
@@ -315,7 +321,7 @@ void output_add_notify(struct wl_listener *listener, void *data) {
set_mode(wlr_output, output_config);
}
wlr_output_set_scale(wlr_output, output_config->scale);
- wlr_output_transform(wlr_output, output_config->transform);
+ wlr_output_set_transform(wlr_output, output_config->transform);
wlr_output_layout_add(desktop->layout, wlr_output, output_config->x,
output_config->y);
} else {
@@ -324,12 +330,6 @@ void output_add_notify(struct wl_listener *listener, void *data) {
struct roots_seat *seat;
wl_list_for_each(seat, &input->seats, link) {
- if (wlr_xcursor_manager_load(seat->cursor->xcursor_manager,
- wlr_output->scale)) {
- wlr_log(L_ERROR, "Cannot load xcursor theme for output '%s' "
- "with scale %d", wlr_output->name, wlr_output->scale);
- }
-
roots_seat_configure_cursor(seat);
roots_seat_configure_xcursor(seat);
}