[mutter/wip/carlosg/clip-regions: 11/12] clutter: Check updated devices with the current clip
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/clip-regions: 11/12] clutter: Check updated devices with the current clip
- Date: Tue, 29 Oct 2019 15:30:14 +0000 (UTC)
commit 631d81c370360bebf3035196306d6ed870aad0a4
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Oct 20 13:36:44 2019 +0200
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
clutter/clutter/clutter-stage.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
---
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
index f1f75bd0a..baf57ef21 100644
--- a/clutter/clutter/clutter-stage.c
+++ b/clutter/clutter/clutter-stage.c
@@ -1415,11 +1415,10 @@ _clutter_stage_check_updated_pointers (ClutterStage *stage)
ClutterDeviceManager *device_manager;
GSList *updating = NULL;
const GSList *devices;
- cairo_rectangle_int_t clip;
+ cairo_region_t *clip;
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 ();
devices = clutter_device_manager_peek_devices (device_manager);
@@ -1442,9 +1441,7 @@ _clutter_stage_check_updated_pointers (ClutterStage *stage)
if (!clutter_input_device_get_coords (dev, NULL, &point))
continue;
- if (!has_clip ||
- (point.x >= clip.x && point.x < clip.x + clip.width &&
- point.y >= clip.y && point.y < clip.y + clip.height))
+ if (!clip || cairo_region_contains_point (clip, point.x, point.y))
updating = g_slist_prepend (updating, dev);
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]