diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2015-02-03 15:49:52 +0800 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2015-07-15 14:55:55 +0800 |
commit | eb023ff2c9dc7dd92e3a7c232995083e6bdcbb48 (patch) | |
tree | 0b40bd3458ddea48a5c203dd5ab468302fe727b3 /src/wayland/meta-wayland-surface.h | |
parent | ba7c524a18d73679ba1e2b8835254774f7726e8d (diff) | |
download | mutter-eb023ff2c9dc7dd92e3a7c232995083e6bdcbb48.tar.gz |
wayland: Send wl_surface.enter and wl_surface.leave
Whenever a MetaSurfaceActor is painted, update the list of what outputs
the surface is being drawed upon. Since we do this on paint, we
effectively avoids this whenever the surface is not drawn, for example
being minimized, on a non-active workspace, or simply outside of the
damage region of a frame.
DND icons and cursors are not affected by this patch, since they are not
drawn as MetaSurfaceActors. If a MetaSurfaceActor or a parent is cloned,
then we'll check the position of the original actor again when the clone is
drawn, which is slightly expensive, but harmless. If the MetaShapedTexture
instead is cloned, as GNOME Shell does in many cases, then these clones
will not cause duplicate position checks.
https://bugzilla.gnome.org/show_bug.cgi?id=744453
Diffstat (limited to 'src/wayland/meta-wayland-surface.h')
-rw-r--r-- | src/wayland/meta-wayland-surface.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/wayland/meta-wayland-surface.h b/src/wayland/meta-wayland-surface.h index 66206b989..e29cf930b 100644 --- a/src/wayland/meta-wayland-surface.h +++ b/src/wayland/meta-wayland-surface.h @@ -100,6 +100,7 @@ struct _MetaWaylandSurface int scale; int32_t offset_x, offset_y; GList *subsurfaces; + GHashTable *outputs; struct { const MetaWaylandDragDestFuncs *funcs; @@ -187,4 +188,6 @@ void meta_wayland_surface_drag_dest_motion (MetaWaylandSurface void meta_wayland_surface_drag_dest_focus_out (MetaWaylandSurface *surface); void meta_wayland_surface_drag_dest_drop (MetaWaylandSurface *surface); +void meta_wayland_surface_update_outputs (MetaWaylandSurface *surface); + #endif |