Update the glut idle function after a new window is created
diff --git a/progs/demos/reflect.c b/progs/demos/reflect.c
index 9a41a86..8929304 100644
--- a/progs/demos/reflect.c
+++ b/progs/demos/reflect.c
@@ -410,6 +410,15 @@
 
 
 static void
+UpdateIdleFunc(void)
+{
+   if (AnyAnimating())
+      glutIdleFunc(Idle);
+   else
+      glutIdleFunc(NULL);
+}
+
+static void
 Key(unsigned char key, int x, int y)
 {
    struct window *w = CurrentWindow();
@@ -436,14 +445,12 @@
    case ' ':
       w->anim = !w->anim;
       w->t0 = -1;
-      if (AnyAnimating())
-         glutIdleFunc(Idle);
-      else
-         glutIdleFunc(NULL);
+      UpdateIdleFunc();
       glutPostRedisplay();
       break;
    case 'n':
       CreateWindow();
+      UpdateIdleFunc();
       break;
    case 'k':
       KillWindow(w);