DALI_ADAPTOR_API void SetAvailableOrientations(Window window, const Dali::Vector<WindowOrientation>& orientations);
/**
- * @brief Gets current window ID.
+ * @brief Gets the native window id.
*
* @param[in] window The window instance
*/
return mScene.IsGeometryHittestEnabled();
}
+int32_t SceneHolder::GetNativeId() const
+{
+ return mScene.GetNativeId();
+}
+
void SceneHolder::AddFrameRenderedCallback(std::unique_ptr<CallbackBase> callback, int32_t frameId)
{
mScene.AddFrameRenderedCallback(std::move(callback), frameId);
bool IsGeometryHittestEnabled();
/**
+ * @copydoc Dali::Integration::SceneHolder::GetNativeId
+ */
+ int32_t GetNativeId() const;
+
+ /**
* @brief Adds a callback that is called when the frame rendering is done by the graphics driver.
*
* @param[in] callback The function to call
return GetImplementation(*this).GetRenderTaskList();
}
+int32_t SceneHolder::GetNativeId() const
+{
+ return GetImplementation(*this).GetNativeId();
+}
+
SceneHolder SceneHolder::Get(Actor actor)
{
return Internal::Adaptor::SceneHolder::Get(actor);
RenderTaskList GetRenderTaskList();
/**
+ * @brief Gets the native window id
+ *
+ * @return The native window id
+ */
+ int32_t GetNativeId() const;
+
+ /**
* @brief Retrieve the SceneHolder that the given actor is added to.
*
* @param[in] actor The actor
/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
void GlWindow::OnKeyEvent(Dali::Integration::KeyEvent& keyEvent)
{
Dali::KeyEvent event = Dali::DevelKeyEvent::New(keyEvent.keyName, keyEvent.logicalKey, keyEvent.keyString, keyEvent.keyCode, keyEvent.keyModifier, keyEvent.time, static_cast<Dali::KeyEvent::State>(keyEvent.state), keyEvent.compose, keyEvent.deviceName, keyEvent.deviceClass, keyEvent.deviceSubclass);
+ Dali::DevelKeyEvent::SetWindowId(event, keyEvent.windowId);
Dali::GlWindow handle(this);
mKeyEventSignal.Emit(event);
}
{
bool isGeometry = Dali::Internal::Adaptor::WindowSystem::IsGeometryHittestEnabled();
mScene.SetGeometryHittestEnabled(isGeometry);
+
+ mScene.SetNativeId(GetNativeId());
}
// If you call the 'Show' before creating the adaptor, the application cannot know the app resource id.
void Window::OnKeyEvent(Dali::Integration::KeyEvent& keyEvent)
{
mLastKeyEvent = Dali::DevelKeyEvent::New(keyEvent.keyName, keyEvent.logicalKey, keyEvent.keyString, keyEvent.keyCode, keyEvent.keyModifier, keyEvent.time, static_cast<Dali::KeyEvent::State>(keyEvent.state), keyEvent.compose, keyEvent.deviceName, keyEvent.deviceClass, keyEvent.deviceSubclass);
+ DevelKeyEvent::SetWindowId(mLastKeyEvent, keyEvent.windowId);
FeedKeyEvent(keyEvent);
}
"WindowBaseCocoa::Impl::OnKey(%s)\n",
[event.characters UTF8String]
);
+ keyEvent.windowId = mThis->GetNativeWindowId();
mThis->mKeyEventSignal.Emit(keyEvent);
}
GetDeviceSubclass(ecore_device_subclass_get(keyEvent->dev), deviceSubclass);
Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::DOWN, compose, deviceName, deviceClass, deviceSubclass);
+ keyEvent.windowId = GetNativeWindowId();
mKeyEventSignal.Emit(keyEvent);
}
GetDeviceSubclass(ecore_device_subclass_get(keyEvent->dev), deviceSubclass);
Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::UP, compose, deviceName, deviceClass, deviceSubclass);
+ keyEvent.windowId = GetNativeWindowId();
mKeyEventSignal.Emit(keyEvent);
}
Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::DOWN, compose, deviceName, deviceClass, deviceSubclass);
keyEvent.isRepeat = isRepeat;
+ keyEvent.windowId = GetNativeWindowId();
mKeyEventSignal.Emit(keyEvent);
}
GetDeviceSubclass(ecore_device_subclass_get(keyEvent->dev), deviceSubclass);
Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::UP, compose, deviceName, deviceClass, deviceSubclass);
+ keyEvent.windowId = GetNativeWindowId();
mKeyEventSignal.Emit(keyEvent);
}
}
Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::DOWN, compose, DEFAULT_DEVICE_NAME, DEFAULT_DEVICE_CLASS, DEFAULT_DEVICE_SUBCLASS);
+ keyEvent.windowId = GetNativeWindowId();
mKeyEventSignal.Emit(keyEvent);
}
}
Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, modifier, time, Integration::KeyEvent::UP, compose, DEFAULT_DEVICE_NAME, DEFAULT_DEVICE_CLASS, DEFAULT_DEVICE_SUBCLASS);
+ keyEvent.windowId = GetNativeWindowId();
mKeyEventSignal.Emit(keyEvent);
}
keyString.push_back(event->wParam);
Integration::KeyEvent keyEvent(keyName, emptyString, keyString, keyCode, modifier, time, Integration::KeyEvent::DOWN, emptyString, emptyString, DEFAULT_DEVICE_CLASS, DEFAULT_DEVICE_SUBCLASS);
+ keyEvent.windowId = GetNativeWindowId();
mKeyEventSignal.Emit(keyEvent);
}
keyString.push_back(event->wParam);
Integration::KeyEvent keyEvent(keyName, emptyString, keyString, keyCode, modifier, time, Integration::KeyEvent::UP, emptyString, emptyString, DEFAULT_DEVICE_CLASS, DEFAULT_DEVICE_SUBCLASS);
+ keyEvent.windowId = GetNativeWindowId();
mKeyEventSignal.Emit(keyEvent);
}
unsigned long time(keyEvent->timestamp);
Integration::KeyEvent daliKeyEvent{keyName, logicalKey, keyString, keyCode, modifier, time, state, compose, DEFAULT_DEVICE_NAME, DEFAULT_DEVICE_CLASS, DEFAULT_DEVICE_SUBCLASS};
+ daliKeyEvent.windowId = GetNativeWindowId();
return daliKeyEvent;
}