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);