shell: Fix segment fault when clicking to activate a NULL pointer_focus

This can happen for instance running a toytoolkit application, launching
the popup menu and then clicking on a surface that does not belong to
the client that create the popup surface.
diff --git a/src/shell.c b/src/shell.c
index 31989b9..f942cf9 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1384,6 +1384,9 @@
 	struct weston_surface *upper;
 
 	focus = (struct weston_surface *) device->pointer_focus;
+	if (!focus)
+		return;
+
 	upper = container_of(focus->link.prev, struct weston_surface, link);
 	if (focus->link.prev != &compositor->surface_list &&
 	    get_shell_surface_type(upper) == SHELL_SURFACE_FULLSCREEN) {
@@ -1392,7 +1395,7 @@
 		focus = upper;
 	}
 
-	if (state && focus && device->pointer_grab == &device->default_pointer_grab)
+	if (state && device->pointer_grab == &device->default_pointer_grab)
 		activate(compositor->shell, focus, wd, time);
 }