From 7c4f6cc145daf66cd9624f1e70dd5278241f5858 Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Wed, 1 Jan 2014 16:28:32 -0800 Subject: shell: Only assign focus on click if there is a pointer focus surface If we don't have a background image from the desktop-shell client or the pointer for some other reason doesn't have a focus we trigger a segfault as we try to deref the seat->pointer->focus NULL pointer. https://bugs.freedesktop.org/show_bug.cgi?id=73066 --- clients/desktop-shell.c | 2 +- desktop-shell/shell.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/clients/desktop-shell.c b/clients/desktop-shell.c index 4e7a815e..f96dcf1c 100644 --- a/clients/desktop-shell.c +++ b/clients/desktop-shell.c @@ -765,7 +765,7 @@ background_configure(void *data, struct background *background = (struct background *) window_get_user_data(window); - widget_schedule_resize(background->widget, width, height); + widget_schedule_resize(background->widget, width - 256, height); } static void diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 7981099a..e22c97fa 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -4216,6 +4216,8 @@ click_to_activate_binding(struct weston_seat *seat, uint32_t time, uint32_t butt { if (seat->pointer->grab != &seat->pointer->default_grab) return; + if (seat->pointer->focus == NULL) + return; activate_binding(seat, data, seat->pointer->focus->surface); } -- cgit v1.2.3