westoy: Remove unused support for window parents

It seems that this was only used by the popup menu infrastructure,
which can handle this all on its own. Implementing e.g. transients
in the future can be done with a simple xdg_shell_set_transient_for.
diff --git a/clients/image.c b/clients/image.c
index c73d0c0..3a52c22 100644
--- a/clients/image.c
+++ b/clients/image.c
@@ -336,7 +336,7 @@
 }
 
 static void
-close_handler(struct window *window, void *data)
+close_handler(void *data)
 {
 	struct image *image = data;
 
diff --git a/clients/terminal.c b/clients/terminal.c
index a321a1e..d09f94b 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -2212,7 +2212,7 @@
 }
 
 static void
-close_handler(struct window *window, void *data)
+close_handler(void *data)
 {
 	struct terminal *terminal = data;
 
diff --git a/clients/view.c b/clients/view.c
index cedef08..4ac9ca5 100644
--- a/clients/view.c
+++ b/clients/view.c
@@ -168,7 +168,7 @@
 }
 
 static void
-close_handler(struct window *window, void *data)
+close_handler(void *data)
 {
 	struct view *view = data;
 
diff --git a/clients/window.c b/clients/window.c
index 0afd46b..bfa451a 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -221,7 +221,6 @@
 
 struct window {
 	struct display *display;
-	struct window *parent;
 	struct wl_list window_output_list;
 	char *title;
 	struct rectangle saved_allocation;
@@ -358,6 +357,7 @@
 
 struct menu {
 	struct window *window;
+	struct window *parent;
 	struct widget *widget;
 	struct input *input;
 	struct frame *frame;
@@ -2274,8 +2274,7 @@
 	switch (index) {
 	case 0: /* close */
 		if (window->close_handler)
-			window->close_handler(window->parent,
-					      window->user_data);
+			window->close_handler(window->user_data);
 		else
 			display_exit(window->display);
 		break;
@@ -2392,8 +2391,7 @@
 
 	if (status & FRAME_STATUS_CLOSE) {
 		if (window->close_handler)
-			window->close_handler(window->parent,
-					      window->user_data);
+			window->close_handler(window->user_data);
 		else
 			display_exit(window->display);
 		return;
@@ -2894,8 +2892,7 @@
 		   input->modifiers == MOD_ALT_MASK &&
 		   state == WL_KEYBOARD_KEY_STATE_PRESSED) {
 		if (window->close_handler)
-			window->close_handler(window->parent,
-					      window->user_data);
+			window->close_handler(window->user_data);
 		else
 			display_exit(window->display);
 	} else if (window->key_handler) {
@@ -4230,8 +4227,7 @@
 }
 
 static struct window *
-window_create_internal(struct display *display,
-		       struct window *parent, int type)
+window_create_internal(struct display *display, int type)
 {
 	struct window *window;
 	struct surface *surface;
@@ -4239,7 +4235,6 @@
 	window = xzalloc(sizeof *window);
 	wl_list_init(&window->subsurface_list);
 	window->display = display;
-	window->parent = parent;
 
 	surface = surface_create(window);
 	window->main_surface = surface;
@@ -4283,13 +4278,13 @@
 struct window *
 window_create(struct display *display)
 {
-	return window_create_internal(display, NULL, TYPE_NONE);
+	return window_create_internal(display, TYPE_NONE);
 }
 
 struct window *
 window_create_custom(struct display *display)
 {
-	return window_create_internal(display, NULL, TYPE_CUSTOM);
+	return window_create_internal(display, TYPE_CUSTOM);
 }
 
 struct window *
@@ -4298,8 +4293,7 @@
 {
 	struct window *window;
 
-	window = window_create_internal(parent->display,
-					parent, TYPE_TRANSIENT);
+	window = window_create_internal(parent->display, TYPE_TRANSIENT);
 
 	window->x = x;
 	window->y = y;
@@ -4307,7 +4301,7 @@
 	if (display->shell)
 		wl_shell_surface_set_transient(
 			window->shell_surface,
-			window->parent->main_surface->surface,
+			parent->main_surface->surface,
 			window->x, window->y, flags);
 
 	return window;
@@ -4374,8 +4368,8 @@
 	    (menu->release_count > 0 || time - menu->time > 500)) {
 		/* Either relase after press-drag-release or
 		 * click-motion-click. */
-		menu->func(menu->window->parent, input,
-			   menu->current, menu->window->parent->user_data);
+		menu->func(menu->parent, input,
+			   menu->current, menu->parent->user_data);
 		input_ungrab(input);
 		menu_destroy(menu);
 	} else if (state == WL_POINTER_BUTTON_STATE_RELEASED) {
@@ -4437,13 +4431,14 @@
 	if (!menu)
 		return;
 
-	window = window_create_internal(parent->display, parent, TYPE_MENU);
+	window = window_create_internal(parent->display, TYPE_MENU);
 	if (!window) {
 		free(menu);
 		return;
 	}
 
 	menu->window = window;
+	menu->parent = parent;
 	menu->widget = window_add_widget(menu->window, menu);
 	window_set_buffer_scale (menu->window, window_get_buffer_scale (parent));
 	window_set_buffer_transform (menu->window, window_get_buffer_transform (parent));
@@ -4477,7 +4472,7 @@
 	frame_interior(menu->frame, &ix, &iy, NULL, NULL);
 	wl_shell_surface_set_popup(window->shell_surface, input->seat,
 				   display_get_serial(window->display),
-				   window->parent->main_surface->surface,
+				   parent->main_surface->surface,
 				   window->x - ix, window->y - iy, 0);
 }
 
diff --git a/clients/window.h b/clients/window.h
index 59e483e..d5e40ed 100644
--- a/clients/window.h
+++ b/clients/window.h
@@ -214,7 +214,7 @@
 				      struct input *input,
 				      int32_t x, int32_t y, void *data);
 
-typedef void (*window_close_handler_t)(struct window *window, void *data);
+typedef void (*window_close_handler_t)(void *data);
 typedef void (*window_fullscreen_handler_t)(struct window *window, void *data);
 
 typedef void (*window_output_handler_t)(struct window *window, struct output *output,