mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 12:55:58 +01:00
change output layout coords to double type
This commit is contained in:
parent
f69a7afd36
commit
a4810203cc
4 changed files with 10 additions and 11 deletions
|
@ -49,8 +49,8 @@ static void handle_output_frame(struct output_state *output, struct timespec *ts
|
|||
float matrix[16];
|
||||
|
||||
// transform global coordinates to local coordinates
|
||||
int local_x = sample->x_offs;
|
||||
int local_y = sample->y_offs;
|
||||
double local_x = sample->x_offs;
|
||||
double local_y = sample->y_offs;
|
||||
wlr_output_layout_output_coords(sample->layout, output->output, &local_x,
|
||||
&local_y);
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ void wlr_output_layout_remove(struct wlr_output_layout *layout,
|
|||
* coordinates relative to the given reference output.
|
||||
*/
|
||||
void wlr_output_layout_output_coords(struct wlr_output_layout *layout,
|
||||
struct wlr_output *reference, int *x, int *y);
|
||||
struct wlr_output *reference, double *x, double *y);
|
||||
|
||||
bool wlr_output_layout_contains_point(struct wlr_output_layout *layout,
|
||||
struct wlr_output *reference, int x, int y);
|
||||
|
|
|
@ -82,10 +82,9 @@ bool wlr_cursor_warp(struct wlr_cursor *cur, double x, double y) {
|
|||
|
||||
struct wlr_output_layout_output *l_output;
|
||||
wl_list_for_each(l_output, &cur->state->layout->outputs, link) {
|
||||
int output_x = x;
|
||||
int output_y = y;
|
||||
double output_x = x;
|
||||
double output_y = y;
|
||||
|
||||
// TODO fix double to int rounding issues
|
||||
wlr_output_layout_output_coords(cur->state->layout,
|
||||
l_output->output, &output_x, &output_y);
|
||||
wlr_output_move_cursor(l_output->output, output_x - hotspot_x,
|
||||
|
|
|
@ -113,16 +113,16 @@ void wlr_output_layout_remove(struct wlr_output_layout *layout,
|
|||
}
|
||||
|
||||
void wlr_output_layout_output_coords(struct wlr_output_layout *layout,
|
||||
struct wlr_output *reference, int *x, int *y) {
|
||||
struct wlr_output *reference, double *x, double *y) {
|
||||
assert(layout && reference);
|
||||
int src_x = *x;
|
||||
int src_y = *y;
|
||||
double src_x = *x;
|
||||
double src_y = *y;
|
||||
|
||||
struct wlr_output_layout_output *_output;
|
||||
wl_list_for_each(_output, &layout->outputs, link) {
|
||||
if (_output->output == reference) {
|
||||
*x = src_x - _output->x;
|
||||
*y = src_y - _output->y;
|
||||
*x = src_x - (double)_output->x;
|
||||
*y = src_y - (double)_output->y;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue