X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fevents%2Fkey-event-processor.cpp;h=8fd110158d1bba6a617d61808d9c2da57397ed52;hb=72c0c0343aa6a83940a726946b237c132f32890f;hp=5261d26eae475769dde86f1e13643b389197bb2c;hpb=7c6f8ed43521c52d6cc46a7e3e3e40069514f818;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 5261d26..8fd1101 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) 2021 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,32 +19,37 @@ #include // INTERNAL INCLUDES -#include -#include -#include #include +#include +#include +#include namespace Dali { - namespace Internal { - -KeyEventProcessor::KeyEventProcessor(Stage& stage) -: mStage(stage) +KeyEventProcessor::KeyEventProcessor(Scene& scene) +: mScene(scene) { } -KeyEventProcessor::~KeyEventProcessor() -{ -} +KeyEventProcessor::~KeyEventProcessor() = default; void KeyEventProcessor::ProcessKeyEvent(const Integration::KeyEvent& event) { - KeyEvent keyEvent(event.keyName, event.keyString, event.keyCode, event.keyModifier, event.time, static_cast(event.state)); - - // Emit the key event signal from stage. - mStage.EmitKeyEventSignal(keyEvent); + 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()); + + // Emit the key event signal from the scene. + bool consumed = mScene.EmitInterceptKeyEventSignal(keyEventHandle); + if(!consumed) + { + consumed = mScene.EmitKeyEventGeneratedSignal(keyEventHandle); + } + if(!consumed) + { + mScene.EmitKeyEventSignal(keyEventHandle); + } } } // namespace Internal