+ /* NAVIGATOR_ORIENTATION occurs before NAVIGATOR_KEYBOARD_POSITION */
+
+ /* Rotate and resize the window */
+ fgPlatformRotateWindow(window, navigator_event_get_orientation_angle(fgDisplay.pDisplay.event));
+ fgPlatformFlushCommands();
+#ifdef __PLAYBOOK__
+ /* PlayBook doesn't indicate what the new size will be, so we need to retrieve it from the window itself */
+ window->State.pWState.newWidth = glutGet(GLUT_WINDOW_WIDTH);
+ window->State.pWState.newHeight = glutGet(GLUT_WINDOW_HEIGHT);
+#endif
+ fghOnReshapeNotify(window, window->State.pWState.newWidth, window->State.pWState.newHeight, GL_FALSE);
+
+ /* Reset sizes */
+ window->State.pWState.newWidth = 0;
+ window->State.pWState.newHeight = 0;
+
+ /* Done rotating */
+ navigator_done_orientation(fgDisplay.pDisplay.event);
+ break;
+
+ case NAVIGATOR_BACK:
+ LOGI("fgPlatformProcessSingleEvent: NAVIGATOR_BACK");
+ INVOKE_WCB(*window, Keyboard, (ESCAPE_BUTTON_KEY, window->State.MouseX, window->State.MouseY));
+ INVOKE_WCB(*window, KeyboardUp, (ESCAPE_BUTTON_KEY, window->State.MouseX, window->State.MouseY));
+ break;
+
+ case NAVIGATOR_WINDOW_ACTIVE:
+ LOGI("fgPlatformProcessSingleEvent: NAVIGATOR_WINDOW_ACTIVE");
+ INVOKE_WCB(*window, AppStatus, (GLUT_APPSTATUS_RESUME));
+ break;
+
+ case NAVIGATOR_WINDOW_INACTIVE:
+ LOGI("fgPlatformProcessSingleEvent: NAVIGATOR_WINDOW_INACTIVE");
+ INVOKE_WCB(*window, AppStatus, (GLUT_APPSTATUS_PAUSE));
+ break;
+
+ case NAVIGATOR_ORIENTATION_DONE:
+ case NAVIGATOR_ORIENTATION_RESULT:
+ LOGI("fgPlatformProcessSingleEvent: NAVIGATOR_ORIENTATION_DONE/NAVIGATOR_ORIENTATION_RESULT");
+ break;
+
+#ifndef __PLAYBOOK__
+ case NAVIGATOR_KEYBOARD_STATE:
+ {
+ LOGI("fgPlatformProcessSingleEvent: NAVIGATOR_KEYBOARD_STATE");
+
+ navigator_keyboard_state_t state = navigator_event_get_keyboard_state(fgDisplay.pDisplay.event);
+ switch (state)
+ {
+ case NAVIGATOR_KEYBOARD_CLOSED:
+ LOGI("fgPlatformProcessSingleEvent: NAVIGATOR_KEYBOARD_STATE-NAVIGATOR_KEYBOARD_CLOSED");
+ /* NAVIGATOR_KEYBOARD_POSITION only occurs on open, so on keyboard close we need to reset the keyboard height */
+ fgPlatformHandleKeyboardHeight(window, 0);
+ break;
+ case NAVIGATOR_KEYBOARD_OPENING:
+ case NAVIGATOR_KEYBOARD_OPENED:
+ case NAVIGATOR_KEYBOARD_CLOSING:
+ break;
+ case NAVIGATOR_KEYBOARD_UNRECOGNIZED:
+ LOGW("fgPlatformProcessSingleEvent: NAVIGATOR_KEYBOARD_STATE-NAVIGATOR_KEYBOARD_UNRECOGNIZED");
+ break;