summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2015-09-11 14:28:15 -0500
committerBryce Harrington <bryce@osg.samsung.com>2015-09-22 18:22:28 -0700
commit673bbe2e8c6953fff676e2d4e03ba5454b7a6bcd (patch)
treec48ae9653743df725ae829e09c40617b6bb17d51
parent9d7aff0e3813341236fa953850bd02ea75604e09 (diff)
downloadweston-673bbe2e8c6953fff676e2d4e03ba5454b7a6bcd.tar.gz
clients: ungrab the correct input when menus close
We need to input_ungrab() on the stored input, not the one that caused the release - otherwise bad things can happen in multi-seat environments when a seat that didn't open the menu closes it. To reproduce: configure two seats launch weston terminal open the right click pop up select a menu item from the other seat The next click from the seat that opened the menu will cause a segfault. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-rw-r--r--clients/window.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/clients/window.c b/clients/window.c
index 0e73f5bd..47a79aa6 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -4738,7 +4738,7 @@ menu_button_handler(struct widget *widget,
/* Either relase after press-drag-release or
* click-motion-click. */
menu->func(menu->user_data, input, menu->current);
- input_ungrab(input);
+ input_ungrab(menu->input);
menu_destroy(menu);
} else if (state == WL_POINTER_BUTTON_STATE_RELEASED) {
menu->release_count++;