diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ad175e3176..fcf06cd293 100755 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -955,14 +955,17 @@ void Application::idle() { // Only run simulation code if more than IDLE_SIMULATE_MSECS have passed since last time we ran if (diffclock(&_lastTimeIdle, &check) > IDLE_SIMULATE_MSECS) { - // We call processEvents() here because the idle timer takes priority over - // event handling in Qt, so when the framerate gets low events will pile up - // unless we handle them here. - // NOTE - this is commented out for now - causing event processing issues reported by Philip and Ryan - // birarda - July 3rd - - // processEvents(); + // If we're using multi-touch look, immediately process any + // touch events, and no other events. + // This is necessary because id the idle() call takes longer than the + // interval between idle() calls, the event loop never gets to run, + // and touch events get delayed. + if (_touchLook->isChecked()) { + sendPostedEvents(NULL, QEvent::TouchBegin); + sendPostedEvents(NULL, QEvent::TouchUpdate); + sendPostedEvents(NULL, QEvent::TouchEnd); + } update(1.0f / _fps);