xdg-shell: Turn "activated" into a state

This drops two events, and makes new window decorations race-free with
an attach in-flight.
diff --git a/clients/window.c b/clients/window.c
index c46cb72..7d88345 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -3868,6 +3868,7 @@
 	window->maximized = 0;
 	window->fullscreen = 0;
 	window->resizing = 0;
+	window->focused = 0;
 
 	wl_array_for_each(p, states) {
 		uint32_t state = *p;
@@ -3881,6 +3882,9 @@
 		case XDG_SURFACE_STATE_RESIZING:
 			window->resizing = 1;
 			break;
+		case XDG_SURFACE_STATE_ACTIVATED:
+			window->focused = 1;
+			break;
 		default:
 			/* Unknown state */
 			break;
@@ -3894,20 +3898,6 @@
 }
 
 static void
-handle_surface_activated(void *data, struct xdg_surface *xdg_surface)
-{
-	struct window *window = data;
-	window->focused = 1;
-}
-
-static void
-handle_surface_deactivated(void *data, struct xdg_surface *xdg_surface)
-{
-	struct window *window = data;
-	window->focused = 0;
-}
-
-static void
 handle_surface_delete(void *data, struct xdg_surface *xdg_surface)
 {
 	struct window *window = data;
@@ -3916,8 +3906,6 @@
 
 static const struct xdg_surface_listener xdg_surface_listener = {
 	handle_surface_configure,
-	handle_surface_activated,
-	handle_surface_deactivated,
 	handle_surface_delete,
 };