// Reset the event handler when adaptor paused
if( mEventHandler )
{
- mEventHandler->Reset();
+ mEventHandler->Pause();
}
mUpdateRenderController->Pause();
// Reset the event handler when adaptor resumed
if( mEventHandler )
{
- mEventHandler->Reset();
+ mEventHandler->Resume();
}
// Inform observers that we have resumed.
void FeedEvent( Integration::Event& event );
/**
- * Resets the event handler.
+ * Called when the adaptor is paused.
*/
- void Reset();
+ void Pause();
+
+ /**
+ * Called when the adaptor is resumed (from pause).
+ */
+ void Resume();
/**
* Sets the Drag & Drop detector.
/**
* Inform rotation observer of rotation prepare event
*/
- void SendRotationRequestEvent( );
+ void SendRotationRequestEvent();
+
+ /**
+ * Resets the event handler.
+ * Called when the adaptor is paused or resumed.
+ */
+ void Reset();
private:
struct Impl; ///< Contains Ecore specific information
Impl* mImpl; ///< Created on construction and destroyed on destruction.
+
+ bool mPaused; ///< The paused state of the adaptor.
};
} // namespace Adaptor
mCoreEventInterface.ProcessCoreEvents();
}
+void EventHandler::Pause()
+{
+ mPaused = true;
+ Reset();
+}
+
+void EventHandler::Resume()
+{
+ mPaused = false;
+ Reset();
+}
+
void EventHandler::SetDragAndDropDetector( DragAndDropDetectorPtr detector )
{
mDragAndDropDetector = detector;
// Callback for Ecore ElDBus accessibility events.
static void OnEcoreElDBusAccessibilityNotification( void *context EINA_UNUSED, const Eldbus_Message *message )
{
- EventHandler* handler( (EventHandler*)context );
+ EventHandler* handler = static_cast< EventHandler* >( context );
+ // Ignore any accessibility events when paused.
+ if( handler->mPaused )
+ {
+ return;
+ }
if ( !handler->mAccessibilityAdaptor )
{
};
EventHandler::EventHandler( RenderSurface* surface, CoreEventInterface& coreEventInterface, GestureManager& gestureManager, DamageObserver& damageObserver, DragAndDropDetectorPtr dndDetector )
-: mCoreEventInterface(coreEventInterface),
+: mCoreEventInterface( coreEventInterface ),
mGestureManager( gestureManager ),
mStyleMonitor( StyleMonitor::Get() ),
mDamageObserver( damageObserver ),
mDragAndDropDetector( dndDetector ),
mAccessibilityAdaptor( AccessibilityAdaptor::Get() ),
mClipboardEventNotifier( ClipboardEventNotifier::Get() ),
- mClipboard(Clipboard::Get()),
- mImpl( NULL )
+ mClipboard( Clipboard::Get() ),
+ mImpl( NULL ),
+ mPaused( false )
{
Ecore_X_Window window = 0;
EventHandler::~EventHandler()
{
- if(mImpl)
- {
- delete mImpl;
- }
+ delete mImpl;
mGestureManager.Stop();
}
mCoreEventInterface.ProcessCoreEvents();
}
+void EventHandler::Pause()
+{
+ mPaused = true;
+ Reset();
+}
+
+void EventHandler::Resume()
+{
+ mPaused = false;
+ Reset();
+}
+
void EventHandler::SetDragAndDropDetector( DragAndDropDetectorPtr detector )
{
mDragAndDropDetector = detector;
*/
Impl( EventHandler* handler, XID window, Display* display )
: mXEventManager(window, display, this),
- mHandler( handler )
+ mHandler( handler ),
+ mPaused( false )
{
mXEventManager.Initialize();
}
mCoreEventInterface.ProcessCoreEvents();
}
+void EventHandler::Pause()
+{
+ mPaused = true;
+ Reset();
+}
+
+void EventHandler::Resume()
+{
+ mPaused = false;
+ Reset();
+}
+
void EventHandler::SetDragAndDropDetector( DragAndDropDetectorPtr detector )
{
mDragAndDropDetector = detector;