wayland: implement support for popup surfaces

Popup surfaces are mapped into override_redirect surfaces
of a DROPDOWN_MENU type, with the addition of a special pointer
grab.

https://bugzilla.gnome.org/show_bug.cgi?id=707863
This commit is contained in:
Giovanni Campagna
2013-09-10 15:53:31 +02:00
parent 81d9797544
commit 76e2455d1b
6 changed files with 211 additions and 37 deletions

View File

@@ -42,6 +42,8 @@ struct _MetaWaylandPointerGrab
MetaWaylandPointer *pointer;
MetaWaylandSurface *focus;
wl_fixed_t x, y;
struct wl_listener focus_destroy_listener;
};
struct _MetaWaylandPointer
@@ -51,6 +53,7 @@ struct _MetaWaylandPointer
struct wl_resource *focus_resource;
struct wl_listener focus_listener;
guint32 focus_serial;
guint32 click_serial;
struct wl_signal focus_signal;
MetaWaylandPointerGrab *grab;
@@ -96,6 +99,10 @@ meta_wayland_pointer_begin_modal (MetaWaylandPointer *pointer);
void
meta_wayland_pointer_end_modal (MetaWaylandPointer *pointer);
gboolean
meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
MetaWaylandSurface *popup);
void
meta_wayland_pointer_set_current (MetaWaylandPointer *pointer,
MetaWaylandSurface *surface);