mirror of
https://github.com/brl/mutter.git
synced 2025-04-16 23:29:38 +00:00
backends/native: Shuffle static constrain functions up
No functional changes, this just moves two functions up to make the follow-up patch more obvious. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3410>
This commit is contained in:
parent
e7f91fad9d
commit
d575138cce
@ -508,6 +508,72 @@ meta_seat_impl_notify_key_in_impl (MetaSeatImpl *seat_impl,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
constrain_to_barriers (MetaSeatImpl *seat_impl,
|
||||||
|
ClutterInputDevice *device,
|
||||||
|
uint32_t time,
|
||||||
|
float *new_x,
|
||||||
|
float *new_y)
|
||||||
|
{
|
||||||
|
meta_barrier_manager_native_process_in_impl (seat_impl->barrier_manager,
|
||||||
|
device,
|
||||||
|
time,
|
||||||
|
new_x, new_y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The pointer constrain code is mostly a rip-off of the XRandR code from Xorg.
|
||||||
|
* (from xserver/randr/rrcrtc.c, RRConstrainCursorHarder)
|
||||||
|
*
|
||||||
|
* Copyright © 2006 Keith Packard
|
||||||
|
* Copyright 2010 Red Hat, Inc
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
constrain_all_screen_monitors (ClutterInputDevice *device,
|
||||||
|
MetaViewportInfo *viewports,
|
||||||
|
float *x,
|
||||||
|
float *y)
|
||||||
|
{
|
||||||
|
float cx, cy;
|
||||||
|
int i, n_views;
|
||||||
|
|
||||||
|
meta_input_device_native_get_coords_in_impl (META_INPUT_DEVICE_NATIVE (device),
|
||||||
|
&cx, &cy);
|
||||||
|
|
||||||
|
/* if we're trying to escape, clamp to the CRTC we're coming from */
|
||||||
|
|
||||||
|
n_views = meta_viewport_info_get_num_views (viewports);
|
||||||
|
|
||||||
|
for (i = 0; i < n_views; i++)
|
||||||
|
{
|
||||||
|
int left, right, top, bottom;
|
||||||
|
MtkRectangle rect;
|
||||||
|
|
||||||
|
meta_viewport_info_get_view_info (viewports, i, &rect, NULL);
|
||||||
|
|
||||||
|
left = rect.x;
|
||||||
|
right = left + rect.width;
|
||||||
|
top = rect.y;
|
||||||
|
bottom = top + rect.height;
|
||||||
|
|
||||||
|
if ((cx >= left) && (cx < right) && (cy >= top) && (cy < bottom))
|
||||||
|
{
|
||||||
|
if (*x < left)
|
||||||
|
*x = left;
|
||||||
|
if (*x >= right)
|
||||||
|
*x = right - 1;
|
||||||
|
if (*y < top)
|
||||||
|
*y = top;
|
||||||
|
if (*y >= bottom)
|
||||||
|
*y = bottom - 1;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
constrain_coordinates (MetaSeatImpl *seat_impl,
|
constrain_coordinates (MetaSeatImpl *seat_impl,
|
||||||
ClutterInputDevice *input_device,
|
ClutterInputDevice *input_device,
|
||||||
@ -1096,72 +1162,6 @@ meta_seat_impl_notify_touch_event_in_impl (MetaSeatImpl *seat_impl,
|
|||||||
queue_event (seat_impl, event);
|
queue_event (seat_impl, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
constrain_to_barriers (MetaSeatImpl *seat_impl,
|
|
||||||
ClutterInputDevice *device,
|
|
||||||
uint32_t time,
|
|
||||||
float *new_x,
|
|
||||||
float *new_y)
|
|
||||||
{
|
|
||||||
meta_barrier_manager_native_process_in_impl (seat_impl->barrier_manager,
|
|
||||||
device,
|
|
||||||
time,
|
|
||||||
new_x, new_y);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The pointer constrain code is mostly a rip-off of the XRandR code from Xorg.
|
|
||||||
* (from xserver/randr/rrcrtc.c, RRConstrainCursorHarder)
|
|
||||||
*
|
|
||||||
* Copyright © 2006 Keith Packard
|
|
||||||
* Copyright 2010 Red Hat, Inc
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void
|
|
||||||
constrain_all_screen_monitors (ClutterInputDevice *device,
|
|
||||||
MetaViewportInfo *viewports,
|
|
||||||
float *x,
|
|
||||||
float *y)
|
|
||||||
{
|
|
||||||
float cx, cy;
|
|
||||||
int i, n_views;
|
|
||||||
|
|
||||||
meta_input_device_native_get_coords_in_impl (META_INPUT_DEVICE_NATIVE (device),
|
|
||||||
&cx, &cy);
|
|
||||||
|
|
||||||
/* if we're trying to escape, clamp to the CRTC we're coming from */
|
|
||||||
|
|
||||||
n_views = meta_viewport_info_get_num_views (viewports);
|
|
||||||
|
|
||||||
for (i = 0; i < n_views; i++)
|
|
||||||
{
|
|
||||||
int left, right, top, bottom;
|
|
||||||
MtkRectangle rect;
|
|
||||||
|
|
||||||
meta_viewport_info_get_view_info (viewports, i, &rect, NULL);
|
|
||||||
|
|
||||||
left = rect.x;
|
|
||||||
right = left + rect.width;
|
|
||||||
top = rect.y;
|
|
||||||
bottom = top + rect.height;
|
|
||||||
|
|
||||||
if ((cx >= left) && (cx < right) && (cy >= top) && (cy < bottom))
|
|
||||||
{
|
|
||||||
if (*x < left)
|
|
||||||
*x = left;
|
|
||||||
if (*x >= right)
|
|
||||||
*x = right - 1;
|
|
||||||
if (*y < top)
|
|
||||||
*y = top;
|
|
||||||
if (*y >= bottom)
|
|
||||||
*y = bottom - 1;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_seat_impl_constrain_pointer (MetaSeatImpl *seat_impl,
|
meta_seat_impl_constrain_pointer (MetaSeatImpl *seat_impl,
|
||||||
ClutterInputDevice *core_pointer,
|
ClutterInputDevice *core_pointer,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user