summaryrefslogtreecommitdiff
path: root/src/wayland/meta-wayland-surface.h
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2015-02-03 15:49:52 +0800
committerJonas Ådahl <jadahl@gmail.com>2015-07-15 14:55:55 +0800
commiteb023ff2c9dc7dd92e3a7c232995083e6bdcbb48 (patch)
tree0b40bd3458ddea48a5c203dd5ab468302fe727b3 /src/wayland/meta-wayland-surface.h
parentba7c524a18d73679ba1e2b8835254774f7726e8d (diff)
downloadmutter-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.h3
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