X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fevents%2Fkey-event-processor.cpp;h=4b6ef61aa4a028a7339d946b55b054882942cb49;hb=refs%2Fchanges%2F37%2F284237%2F2;hp=bfc1f43c51c3fc4fb34cbc131e097259b06c62af;hpb=e9524669d4d677c5f6c01ab55a73c705b62788ec;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/events/key-event-processor.cpp b/dali/internal/event/events/key-event-processor.cpp index bfc1f43..4b6ef61 100644 --- a/dali/internal/event/events/key-event-processor.cpp +++ b/dali/internal/event/events/key-event-processor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,42 +19,59 @@ #include // INTERNAL INCLUDES -#include -#include -#include -#include #include +#include +#include +#include +#include namespace Dali { - namespace Internal { - -KeyEventProcessor::KeyEventProcessor(Stage& stage) -: mStage(stage) +namespace { -} +DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false); +} // namespace -KeyEventProcessor::~KeyEventProcessor() +KeyEventProcessor::KeyEventProcessor(Scene& scene) +: mScene(scene) { } +KeyEventProcessor::~KeyEventProcessor() = default; + void KeyEventProcessor::ProcessKeyEvent(const Integration::KeyEvent& event) { - bool consumed = false; - KeyEvent keyEvent(event.keyName, event.keyString, event.keyCode, event.keyModifier, event.time, static_cast(event.state)); + KeyEventPtr keyEvent(new KeyEvent(event.keyName, event.logicalKey, event.keyString, event.keyCode, event.keyModifier, event.time, static_cast(event.state), event.compose, event.deviceName, event.deviceClass, event.deviceSubclass)); + Dali::KeyEvent keyEventHandle(keyEvent.Get()); - GetImplementation( &keyEvent )->SetDeviceName( event.deviceName ); - GetImplementation( &keyEvent )->SetDeviceClass( event.deviceClass ); +#ifdef TRACE_ENABLED + std::ostringstream stream; + if(gTraceFilter->IsTraceEnabled()) + { + stream << "DALI_PROCESS_KEY_EVENT [" << event.keyName << ", " << event.state << "]"; + DALI_TRACE_BEGIN(gTraceFilter, stream.str().c_str()); + } +#endif - // Emit the key event signal from stage. - consumed = mStage.EmitKeyEventGeneratedSignal( keyEvent ); + // Emit the key event signal from the scene. + bool consumed = mScene.EmitInterceptKeyEventSignal(keyEventHandle); + if(!consumed) + { + consumed = mScene.EmitKeyEventGeneratedSignal(keyEventHandle); + } + if(!consumed) + { + mScene.EmitKeyEventSignal(keyEventHandle); + } - if( !consumed ) +#ifdef TRACE_ENABLED + if(gTraceFilter->IsTraceEnabled()) { - mStage.EmitKeyEventSignal(keyEvent); + DALI_TRACE_END(gTraceFilter, stream.str().c_str()); } +#endif } } // namespace Internal