diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index a1ef7db..67c4965 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -2772,7 +2772,8 @@
 static int
 black_surface_get_label(struct weston_surface *surface, char *buf, size_t len)
 {
-	struct weston_surface *fs_surface = surface->configure_private;
+	struct weston_view *fs_view = surface->configure_private;
+	struct weston_surface *fs_surface = fs_view->surface;
 	int n;
 	int rem;
 	int ret;
@@ -2801,7 +2802,7 @@
 
 static struct weston_view *
 create_black_surface(struct weston_compositor *ec,
-		     struct weston_surface *fs_surface,
+		     struct weston_view *fs_view,
 		     float x, float y, int w, int h)
 {
 	struct weston_surface *surface = NULL;
@@ -2820,7 +2821,7 @@
 	}
 
 	surface->configure = black_surface_configure;
-	surface->configure_private = fs_surface;
+	surface->configure_private = fs_view;
 	weston_surface_set_label_func(surface, black_surface_get_label);
 	weston_surface_set_color(surface, 0.0, 0.0, 0.0, 1);
 	pixman_region32_fini(&surface->opaque);
@@ -2844,7 +2845,7 @@
 	if (!shsurf->fullscreen.black_view)
 		shsurf->fullscreen.black_view =
 			create_black_surface(shsurf->surface->compositor,
-			                     shsurf->surface,
+			                     shsurf->view,
 			                     output->x, output->y,
 			                     output->width,
 			                     output->height);
@@ -5208,11 +5209,13 @@
 }
 
 static bool
-is_black_surface (struct weston_surface *es, struct weston_surface **fs_surface)
+is_black_surface_view(struct weston_view *view, struct weston_view **fs_view)
 {
-	if (es->configure == black_surface_configure) {
-		if (fs_surface)
-			*fs_surface = (struct weston_surface *)es->configure_private;
+	struct weston_surface *surface = view->surface;
+
+	if (surface->configure == black_surface_configure) {
+		if (fs_view)
+			*fs_view = surface->configure_private;
 		return true;
 	}
 	return false;
@@ -5223,19 +5226,20 @@
 		 struct desktop_shell *shell,
 		 struct weston_view *focus_view)
 {
-	struct weston_surface *focus;
+	struct weston_view *main_view;
 	struct weston_surface *main_surface;
 
-	focus = focus_view->surface;
+	if (!focus_view)
+		return;
 
-	if (is_black_surface(focus, &main_surface))
-		focus = main_surface;
+	if (is_black_surface_view(focus_view, &main_view))
+		focus_view = main_view;
 
-	main_surface = weston_surface_get_main_surface(focus);
+	main_surface = weston_surface_get_main_surface(focus_view->surface);
 	if (get_shell_surface_type(main_surface) == SHELL_SURFACE_NONE)
 		return;
 
-	activate(shell, focus, seat, true);
+	activate(shell, focus_view->surface, seat, true);
 }
 
 static void
@@ -6075,7 +6079,7 @@
 			weston_surface_damage(view->surface);
 		}
 
-		if (is_black_surface(view->surface, NULL)) {
+		if (is_black_surface_view(view, NULL)) {
 			view->alpha = 0.25;
 			weston_view_geometry_dirty(view);
 			weston_surface_damage(view->surface);
