From ab21c3cad7065670dc9190c5d700866d3d5f05e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Wed, 21 Sep 2016 14:45:51 +0800 Subject: MetaWaylandPopup: Dismiss popup when grab is cancelled 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 --- src/wayland/meta-wayland-popup.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/wayland/meta-wayland-popup.c b/src/wayland/meta-wayland-popup.c index f9141dd06..1b36d00ff 100644 --- a/src/wayland/meta-wayland-popup.c +++ b/src/wayland/meta-wayland-popup.c @@ -141,10 +141,17 @@ popup_grab_button (MetaWaylandPointerGrab *grab, meta_wayland_pointer_end_popup_grab (grab->pointer); } +static void +popup_grab_cancel (MetaWaylandPointerGrab *grab) +{ + meta_wayland_pointer_end_popup_grab (grab->pointer); +} + static MetaWaylandPointerGrabInterface popup_grab_interface = { popup_grab_focus, popup_grab_motion, - popup_grab_button + popup_grab_button, + popup_grab_cancel }; MetaWaylandPopupGrab * -- cgit v1.2.1