diff options
author | emersion <contact@emersion.fr> | 2017-12-28 15:09:57 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2017-12-28 15:09:57 +0100 |
commit | 1e6566e6cd885086fce4a0fe61395f316dd9284f (patch) | |
tree | 55b277ebcf02b58393f76a9abebc12c1ef86bef5 | |
parent | 9c163b7d38f859df0f6b21d04ff4267df74dd290 (diff) |
Fixes for multiple outputs
* Fixes output positions in screenshots
* Fixes Wayland backend pointer events when output layout doesn't start at (0, 0)
-rw-r--r-- | backend/wayland/wl_seat.c | 4 | ||||
-rw-r--r-- | examples/screenshot.c | 8 |
2 files changed, 3 insertions, 9 deletions
diff --git a/backend/wayland/wl_seat.c b/backend/wayland/wl_seat.c index ddee268d..90f7d44c 100644 --- a/backend/wayland/wl_seat.c +++ b/backend/wayland/wl_seat.c @@ -74,8 +74,8 @@ static void pointer_handle_motion(void *data, struct wl_pointer *wl_pointer, wlr_event.time_msec = time; wlr_event.width_mm = layout_box.width; wlr_event.height_mm = layout_box.height; - wlr_event.x_mm = transformed.x + wlr_output->lx + layout_box.x; - wlr_event.y_mm = transformed.y + wlr_output->ly + layout_box.y; + wlr_event.x_mm = transformed.x + wlr_output->lx - layout_box.x; + wlr_event.y_mm = transformed.y + wlr_output->ly - layout_box.y; wl_signal_emit(&dev->pointer->events.motion_absolute, &wlr_event); } diff --git a/examples/screenshot.c b/examples/screenshot.c index a887d1d7..932f5e37 100644 --- a/examples/screenshot.c +++ b/examples/screenshot.c @@ -220,16 +220,10 @@ static void write_image(const char *filename, int width, int height) { } static int set_buffer_size(int *width, int *height) { - struct screenshooter_output *output; min_x = min_y = INT_MAX; max_x = max_y = INT_MIN; - int position = 0; - - wl_list_for_each_reverse(output, &output_list, link) { - output->offset_x = position; - position += output->width; - } + struct screenshooter_output *output; wl_list_for_each(output, &output_list, link) { min_x = MIN(min_x, output->offset_x); min_y = MIN(min_y, output->offset_y); |