mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 09:30:45 -05:00
clutter: Check updated devices with the current clip
We do check the clip area as an optimization to know which input devices might need updating state after a relayout (Assuming that if a device is under a non-painted area, it's actor beneath didn't change). Use the clip region for this, and drop the last usage of the clip region bounds. https://gitlab.gnome.org/GNOME/mutter/merge_requests/867
This commit is contained in:
parent
a586f6a152
commit
353d7909f6
@ -1394,11 +1394,10 @@ _clutter_stage_check_updated_pointers (ClutterStage *stage)
|
|||||||
ClutterDeviceManager *device_manager;
|
ClutterDeviceManager *device_manager;
|
||||||
GSList *updating = NULL;
|
GSList *updating = NULL;
|
||||||
const GSList *devices;
|
const GSList *devices;
|
||||||
cairo_rectangle_int_t clip;
|
cairo_region_t *clip;
|
||||||
graphene_point_t point;
|
graphene_point_t point;
|
||||||
gboolean has_clip;
|
|
||||||
|
|
||||||
has_clip = _clutter_stage_window_get_redraw_clip_bounds (priv->impl, &clip);
|
clip = _clutter_stage_window_get_redraw_clip (priv->impl);
|
||||||
|
|
||||||
device_manager = clutter_device_manager_get_default ();
|
device_manager = clutter_device_manager_get_default ();
|
||||||
devices = clutter_device_manager_peek_devices (device_manager);
|
devices = clutter_device_manager_peek_devices (device_manager);
|
||||||
@ -1421,9 +1420,7 @@ _clutter_stage_check_updated_pointers (ClutterStage *stage)
|
|||||||
if (!clutter_input_device_get_coords (dev, NULL, &point))
|
if (!clutter_input_device_get_coords (dev, NULL, &point))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!has_clip ||
|
if (!clip || cairo_region_contains_point (clip, point.x, point.y))
|
||||||
(point.x >= clip.x && point.x < clip.x + clip.width &&
|
|
||||||
point.y >= clip.y && point.y < clip.y + clip.height))
|
|
||||||
updating = g_slist_prepend (updating, dev);
|
updating = g_slist_prepend (updating, dev);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user