summaryrefslogtreecommitdiff
path: root/src/wayland/meta-wayland-popup.c
Commit message (Collapse)AuthorAgeFilesLines
* MetaWaylandPopup: Dismiss popup when grab is cancelledJonas Ådahl2016-10-121-1/+8
| | | | | | | | | | | | Dismiss the popup when the grab is cancelled, so that if the grab is ended for whatever reason (such as VT switching or the last pointer being disconnected), it doesn't try to end the grab when it isn't active. This fixes a crash when VT switching back and forth while a popup grab is active. https://bugzilla.gnome.org/show_bug.cgi?id=771858
* wayland/pointer: Check pointer presence at set focus call siteJonas Ådahl2016-10-111-0/+10
| | | | | | | | | | | Make the caller of focus setting check whether there is a pointer to update the focus state of. It makes it more obvious what to expect, as the call would be a no-op in when no pointer is present. Grabbing is still allowed without the presence of a pointer because it is used by popups even on touch-only systems. https://bugzilla.gnome.org/show_bug.cgi?id=771646
* wayland/keyboard: Check keyboard presence at set focus call siteJonas Ådahl2016-10-111-6/+5
| | | | | | | | | Make the caller of focus setting and grab starting check whether there is a keyboard to update the focus state or start grabbing. It makes it more obvious what to expect, as the call would be a no-op in when no keyboard is present. https://bugzilla.gnome.org/show_bug.cgi?id=771646
* wayland: Make seat devices GObjectsJonas Ådahl2016-09-091-2/+2
| | | | | | This will make it possible to add signals and other GObject features. https://bugzilla.gnome.org/show_bug.cgi?id=771050
* wayland/xdg-shell: Make keyboard focus follow grabbing popupJonas Ådahl2016-08-251-1/+20
| | | | | | | This is the explicitly intended keyboard focus symantics of xdg-shell unstable v6. The semantics are undefined in unstable v5. https://bugzilla.gnome.org/show_bug.cgi?id=769936
* wayland: Let the popup surface explicitly dismiss the popupJonas Ådahl2016-05-011-23/+0
| | | | | | | | Instead of relying on destroy signals attached to the corresponding role object, let the roles explicitly dismiss the popup when it should be dismissed. https://bugzilla.gnome.org/show_bug.cgi?id=763431
* wayland: Add 'MetaWaylandPopupSurface' bridge between popup and surfaceJonas Ådahl2016-05-011-21/+41
| | | | | | | | Add a bridge between the MetaWaylandPopup object and the corresponding popup surface role. This bridge replaces communicating dismissed and unmapped popup events. https://bugzilla.gnome.org/show_bug.cgi?id=763431
* wayland: Simplify popup grabbing APIJonas Ådahl2016-05-011-2/+13
| | | | | | | meta_wayland_popup_grab_create() creates and begins the grab and meta_wayland_popup_grab_destroy() both ends and destroys the grab. https://bugzilla.gnome.org/show_bug.cgi?id=763431
* wayland: Fail clients who try to create or destroy a not-top-most popupJonas Ådahl2015-02-171-0/+17
| | | | | | | | | | If a client creates an xdg_popup given a parent that is a xdg_popup that is not the most top one in the grab chain, send the not_the_topmost_popup error. Also fail a client who destroys a popup that is not the top most one. https://bugzilla.gnome.org/show_bug.cgi?id=744452
* wayland: Unmap popup windows when a popup chain is dismissedJonas Ådahl2015-02-171-0/+10
| | | | | | | | When dismissing a popup grab, always unmap every popup window in the chain, instead of relying on the surfaces and xdg_popups being destroyed. https://bugzilla.gnome.org/show_bug.cgi?id=744452
* wayland: Move out popup logic to its own fileJonas Ådahl2015-02-171-0/+238
We'll want to expose popup logic outside of meta-wayland-pointer.c and one day we'll also probably want to add touch support for popups, so lets move it to its own file. There are no significant semantical changes, only refactoring. https://bugzilla.gnome.org/show_bug.cgi?id=744452