demo cube: Clean up event processing

Will now really wait for an event when paused.
Always update and render after checking for events
diff --git a/demos/cube.c b/demos/cube.c
index 923b8a8..cd1ccaa 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -1140,7 +1140,7 @@
     u_int8_t event_code = event->response_type & 0x7f;
     switch (event_code) {
     case XCB_EXPOSE:
-        demo_draw(demo);
+        // TODO: Resize window
         break;
     case XCB_CLIENT_MESSAGE:
         if((*(xcb_client_message_event_t*)event).data.data32[0] ==
@@ -1181,20 +1181,21 @@
     while (!demo->quit) {
         xcb_generic_event_t *event;
 
-        event = xcb_poll_for_event(demo->connection);
+        if (demo->pause) {
+            event = xcb_wait_for_event(demo->connection);
+        } else {
+            event = xcb_poll_for_event(demo->connection);
+        }
         if (event) {
             demo_handle_event(demo, event);
             free(event);
-        } else if (!demo->pause){
-            // Wait for work to finish before updating MVP.
-            xglDeviceWaitIdle(demo->device);
-
-            demo_update_data_buffer(demo);
-
-            demo_update_data_buffer(demo);
-
-            demo_draw(demo);
         }
+
+        // Wait for work to finish before updating MVP.
+        xglDeviceWaitIdle(demo->device);
+        demo_update_data_buffer(demo);
+
+        demo_draw(demo);
     }
 }