// Create the EGL window
EGLNativeWindowType window = mWindowBase->CreateEglWindow(width, height);
+ if(mWindowBase->GetType() == WindowType::IME)
+ {
+ InitializeImeSurface();
+ }
+
auto eglGraphics = static_cast<EglGraphics*>(mGraphics);
Internal::Adaptor::EglImplementation& eglImpl = eglGraphics->GetEglImplementation();
mPositionSize.width = surfaceSize.width;
mPositionSize.height = surfaceSize.height;
- DALI_LOG_RELEASE_INFO("Window is resizing, (%d, %d), [%d x %d]\n", mPositionSize.x, mPositionSize.y, mPositionSize.width, mPositionSize.height);
+ DALI_LOG_RELEASE_INFO("Window is resizing, (%d, %d), [%d x %d], IMEWindow [%d]\n", mPositionSize.x, mPositionSize.y, mPositionSize.width, mPositionSize.height, mIsImeWindowSurface);
// Window rotate or screen rotate
if(mIsWindowOrientationChanging || isScreenOrientationChanging)
void WindowRenderSurface::InitializeImeSurface()
{
- mIsImeWindowSurface = true;
- if(!mPostRenderTrigger)
+ if(!mIsImeWindowSurface)
{
- mPostRenderTrigger = std::unique_ptr<TriggerEventInterface>(TriggerEventFactory::CreateTriggerEvent(MakeCallback(this, &WindowRenderSurface::ProcessPostRender),
- TriggerEventInterface::KEEP_ALIVE_AFTER_TRIGGER));
+ mIsImeWindowSurface = true;
+ if(!mPostRenderTrigger)
+ {
+ mPostRenderTrigger = std::unique_ptr<TriggerEventInterface>(TriggerEventFactory::CreateTriggerEvent(MakeCallback(this, &WindowRenderSurface::ProcessPostRender),
+ TriggerEventInterface::KEEP_ALIVE_AFTER_TRIGGER));
+
+ }
}
}
mScreenOffModeChangeDone(true),
mVisible(true),
mOwnSurface(false),
- mBrightnessChangeDone(true)
+ mBrightnessChangeDone(true),
+ mIsIMEWindowInitialized(false)
{
Initialize(positionSize, surface, isTransparent);
}
{
case Dali::WindowType::NORMAL:
{
+ DALI_LOG_RELEASE_INFO("WindowBaseEcoreWl2::SetType, Dali::WindowType::NORMAL\n");
windowType = ECORE_WL2_WINDOW_TYPE_TOPLEVEL;
break;
}
case Dali::WindowType::NOTIFICATION:
{
+ DALI_LOG_RELEASE_INFO("WindowBaseEcoreWl2::SetType, Dali::WindowType::NOTIFICATION\n");
windowType = ECORE_WL2_WINDOW_TYPE_NOTIFICATION;
break;
}
case Dali::WindowType::UTILITY:
{
+ DALI_LOG_RELEASE_INFO("WindowBaseEcoreWl2::SetType, Dali::WindowType::UTILITY\n");
windowType = ECORE_WL2_WINDOW_TYPE_UTILITY;
break;
}
case Dali::WindowType::DIALOG:
{
+ DALI_LOG_RELEASE_INFO("WindowBaseEcoreWl2::SetType, Dali::WindowType::DIALOG\n");
windowType = ECORE_WL2_WINDOW_TYPE_DIALOG;
break;
}
case Dali::WindowType::IME:
{
+ DALI_LOG_RELEASE_INFO("WindowBaseEcoreWl2::SetType, Dali::WindowType::IME\n");
windowType = ECORE_WL2_WINDOW_TYPE_NONE;
break;
}
case Dali::WindowType::DESKTOP:
{
+ DALI_LOG_RELEASE_INFO("WindowBaseEcoreWl2::SetType, Dali::WindowType::DESKTOP\n");
windowType = ECORE_WL2_WINDOW_TYPE_DESKTOP;
break;
}
default:
{
+ DALI_LOG_RELEASE_INFO("WindowBaseEcoreWl2::SetType, default window type\n");
windowType = ECORE_WL2_WINDOW_TYPE_TOPLEVEL;
break;
}
Dali::WindowType WindowBaseEcoreWl2::GetType() const
{
+ DALI_LOG_RELEASE_INFO("GetType, DALI WindType: %d, mIsIMEWindowInitialized: %d\n", mType, mIsIMEWindowInitialized);
return mType;
}
Ecore_Wl2_Global* global;
Ecore_Wl2_Display* ecoreWl2Display;
+ if(mIsIMEWindowInitialized)
+ {
+ DALI_LOG_RELEASE_INFO("WindowBaseEcoreWl2::InitializeIme, IME Window is already initialized\n");
+ return;
+ }
+
if(!(ecoreWl2Display = ecore_wl2_connected_display_get(NULL)))
{
DALI_LOG_ERROR("WindowBaseEcoreWl2::InitializeIme(), fail to get ecore_wl2 connected display\n");
return;
}
- DALI_LOG_RELEASE_INFO("InitializeIme: Ecore_Wl2_Display: %p, ecore wl window: %p\n", ecoreWl2Display, mEcoreWindow);
+ DALI_LOG_RELEASE_INFO("InitializeIme: Ecore_Wl2_Display: %p, ecore wl window: %p, mIsIMEWindowInitialized: %d\n", ecoreWl2Display, mEcoreWindow, mIsIMEWindowInitialized);
if(!(registry = ecore_wl2_display_registry_get(ecoreWl2Display)))
{
wl_input_panel_surface_set_toplevel(mWlInputPanelSurface, mWlOutput, WL_INPUT_PANEL_SURFACE_POSITION_CENTER_BOTTOM);
#endif
FINISH_DURATION_CHECK("zwp_input_panel_surface_v1_set_toplevel");
+ mIsIMEWindowInitialized = true;
}
void WindowBaseEcoreWl2::ImeWindowReadyToRender()