monitor-manager: Make logical monitor from point API take floats

Change meta_monitor_manager_get_logical_monitor_at() to use floats,
replace users of meta_monitor_manager_get_monitor_at_point() to use the
API that returns a logical monitor and remove the now unused function.

https://bugzilla.gnome.org/show_bug.cgi?id=777732
This commit is contained in:
Jonas Ådahl 2016-12-01 15:37:32 +08:00
parent a422d6fe08
commit c98bab8327
4 changed files with 8 additions and 35 deletions

View File

@ -146,8 +146,8 @@ meta_backend_monitors_changed (MetaBackend *backend)
if (clutter_input_device_get_coords (device, NULL, &point))
{
/* If we're outside all monitors, warp the pointer back inside */
if (meta_monitor_manager_get_monitor_at_point (monitor_manager,
point.x, point.y) < 0)
if (!meta_monitor_manager_get_logical_monitor_at (monitor_manager,
point.x, point.y))
center_pointer (backend);
}
}

View File

@ -374,8 +374,8 @@ MetaLogicalMonitor *meta_monitor_manager_get_logical_monitor_from_number (MetaMo
MetaLogicalMonitor *meta_monitor_manager_get_primary_logical_monitor (MetaMonitorManager *manager);
MetaLogicalMonitor *meta_monitor_manager_get_logical_monitor_at (MetaMonitorManager *manager,
int x,
int y);
float x,
float y);
MetaLogicalMonitor *meta_monitor_manager_get_logical_monitor_from_rect (MetaMonitorManager *manager,
MetaRectangle *rect);
@ -427,10 +427,6 @@ gboolean meta_monitor_manager_get_monitor_matrix (MetaMonitorManager *
MetaOutput *output,
gfloat matrix[6]);
gint meta_monitor_manager_get_monitor_at_point (MetaMonitorManager *manager,
gfloat x,
gfloat y);
void meta_monitor_manager_clear_output (MetaOutput *output);
void meta_monitor_manager_clear_mode (MetaMonitorMode *mode);
void meta_monitor_manager_clear_crtc (MetaCRTC *crtc);

View File

@ -1331,8 +1331,8 @@ meta_monitor_manager_get_primary_logical_monitor (MetaMonitorManager *manager)
MetaLogicalMonitor *
meta_monitor_manager_get_logical_monitor_at (MetaMonitorManager *manager,
int x,
int y)
float x,
float y)
{
unsigned int i;
@ -1726,30 +1726,6 @@ meta_monitor_manager_get_monitor_for_output (MetaMonitorManager *manager,
return -1;
}
gint
meta_monitor_manager_get_monitor_at_point (MetaMonitorManager *manager,
gfloat x,
gfloat y)
{
unsigned int i;
for (i = 0; i < manager->n_logical_monitors; i++)
{
MetaLogicalMonitor *logical_monitor = &manager->logical_monitors[i];
int left, right, top, bottom;
left = logical_monitor->rect.x;
right = left + logical_monitor->rect.width;
top = logical_monitor->rect.y;
bottom = top + logical_monitor->rect.height;
if ((x >= left) && (x < right) && (y >= top) && (y < bottom))
return i;
}
return -1;
}
gboolean
meta_monitor_manager_get_is_builtin_display_on (MetaMonitorManager *manager)
{

View File

@ -247,7 +247,8 @@ pointer_constrain_callback (ClutterInputDevice *device,
&n_logical_monitors);
/* if we're moving inside a monitor, we're fine */
if (meta_monitor_manager_get_monitor_at_point (monitor_manager, *new_x, *new_y) >= 0)
if (meta_monitor_manager_get_logical_monitor_at (monitor_manager,
*new_x, *new_y))
return;
/* if we're trying to escape, clamp to the CRTC we're coming from */