X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=adaptors%2Fecore%2Fwayland%2Fwindow-impl-ecore-wl.cpp;h=12ec48cfe99d3841708451ee31c385730baa74ac;hb=refs%2Fchanges%2F63%2F152663%2F2;hp=6a71e003b8119bd39b1403f2ef57a232909f55e0;hpb=fba793359b957dc0a9c31e0e72b13c859b91bc21;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/adaptors/ecore/wayland/window-impl-ecore-wl.cpp b/adaptors/ecore/wayland/window-impl-ecore-wl.cpp index 6a71e00..12ec48c 100644 --- a/adaptors/ecore/wayland/window-impl-ecore-wl.cpp +++ b/adaptors/ecore/wayland/window-impl-ecore-wl.cpp @@ -77,9 +77,9 @@ struct Window::EventHandler mNotificationLevel( -1 ), mNotificationChangeState( 0 ), mNotificationLevelChangeDone( true ), - mScreenMode( 0 ), - mScreenModeChangeState( 0 ), - mScreenModeChangeDone( true ), + mScreenOffMode( 0 ), + mScreenOffModeChangeState( 0 ), + mScreenOffModeChangeDone( true ), mBrightness( 0 ), mBrightnessChangeState( 0 ), mBrightnessChangeDone( true ) @@ -210,10 +210,16 @@ struct Window::EventHandler if ( handler && handler->mWindow && transformEvent->output == ecore_wl_window_output_find( handler->mEcoreWindow ) ) { + DALI_LOG_INFO( gWindowLogFilter, Debug::General, "Window (%d) EcoreEventOutputTransform\n", handler->mEcoreWindow ); + ECore::WindowRenderSurface* wlSurface( dynamic_cast< ECore::WindowRenderSurface * >( handler->mWindow->mSurface ) ); if( wlSurface ) { wlSurface->OutputTransformed(); + + PositionSize positionSize = wlSurface->GetPositionSize(); + handler->mWindow->mAdaptor->SurfaceResizePrepare( Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); + handler->mWindow->mAdaptor->SurfaceResizeComplete( Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); } } @@ -228,10 +234,16 @@ struct Window::EventHandler if ( handler && handler->mWindow && ignoreTransformEvent->win == handler->mEcoreWindow ) { + DALI_LOG_INFO( gWindowLogFilter, Debug::General, "Window (%d) EcoreEventIgnoreOutputTransform\n", handler->mEcoreWindow ); + ECore::WindowRenderSurface* wlSurface( dynamic_cast< ECore::WindowRenderSurface * >( handler->mWindow->mSurface ) ); if( wlSurface ) { wlSurface->OutputTransformed(); + + PositionSize positionSize = wlSurface->GetPositionSize(); + handler->mWindow->mAdaptor->SurfaceResizePrepare( Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); + handler->mWindow->mAdaptor->SurfaceResizeComplete( Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); } } @@ -292,9 +304,9 @@ struct Window::EventHandler { Window::EventHandler* eventHandler = static_cast< Window::EventHandler* >( data ); - eventHandler->mScreenMode = mode; - eventHandler->mScreenModeChangeState = state; - eventHandler->mScreenModeChangeDone = true; + eventHandler->mScreenOffMode = mode; + eventHandler->mScreenOffModeChangeState = state; + eventHandler->mScreenOffModeChangeDone = true; DALI_LOG_INFO( gWindowLogFilter, Debug::General, "Window::EventHandler::TizenPolicyScreenModeChangeDone: mode = %d, state = %d\n", mode, state ); } @@ -348,9 +360,9 @@ struct Window::EventHandler uint32_t mNotificationChangeState; bool mNotificationLevelChangeDone; - int mScreenMode; - uint32_t mScreenModeChangeState; - bool mScreenModeChangeDone; + int mScreenOffMode; + uint32_t mScreenOffModeChangeState; + bool mScreenOffModeChangeDone; int mBrightness; uint32_t mBrightnessChangeState; @@ -493,7 +505,7 @@ Window::Window() mIndicatorOpacityMode( Dali::Window::OPAQUE ), mOverlay( NULL ), mAdaptor( NULL ), - mType( Dali::DevelWindow::NORMAL ), + mType( Dali::Window::NORMAL ), mEventHandler( NULL ), mPreferredOrientation( Dali::Window::PORTRAIT ), mSupportedAuxiliaryHints(), @@ -718,7 +730,8 @@ void Window::SetIndicatorActorRotation() void Window::Raise() { - ecore_wl_window_raise( mEventHandler->mEcoreWindow ); + // Use ecore_wl_window_activate to prevent the window shown without rendering + ecore_wl_window_activate( mEventHandler->mEcoreWindow ); } void Window::Lower() @@ -852,7 +865,7 @@ void Window::SetAcceptFocus( bool accept ) ecore_wl_window_focus_skip_set( mEventHandler->mEcoreWindow, !accept ); } -bool Window::IsFocusAcceptable() +bool Window::IsFocusAcceptable() const { return mIsFocusAcceptable; } @@ -888,20 +901,25 @@ void Window::RotationDone( int orientation, int width, int height ) wlSurface->RequestRotation( orientation, width, height ); } - mAdaptor->SurfaceResizePrepare( Dali::Adaptor::SurfaceSize( width, height ) ); + mAdaptor->SurfaceResizePrepare( Adaptor::SurfaceSize( width, height ) ); // Emit signal - mResizedSignal.Emit( Dali::DevelWindow::WindowSize( width, height ) ); + mResizedSignal.Emit( Dali::Window::WindowSize( width, height ) ); + + mAdaptor->SurfaceResizeComplete( Adaptor::SurfaceSize( width, height ) ); +} - mAdaptor->SurfaceResizeComplete( Dali::Adaptor::SurfaceSize( width, height ) ); +void Window::SetIndicatorVisibleMode( Dali::Window::IndicatorVisibleMode mode ) +{ + mIndicatorVisible = mode; } -unsigned int Window::GetSupportedAuxiliaryHintCount() +unsigned int Window::GetSupportedAuxiliaryHintCount() const { return mSupportedAuxiliaryHints.size(); } -std::string Window::GetSupportedAuxiliaryHint( unsigned int index ) +std::string Window::GetSupportedAuxiliaryHint( unsigned int index ) const { if( index >= GetSupportedAuxiliaryHintCount() ) { @@ -1027,7 +1045,7 @@ void Window::SetInputRegion( const Rect< int >& inputRegion ) DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetInputRegion: x = %d, y = %d, w = %d, h = %d\n", inputRegion.x, inputRegion.y, inputRegion.width, inputRegion.height ); } -void Window::SetType( Dali::DevelWindow::Type type ) +void Window::SetType( Dali::Window::Type type ) { Ecore_Wl_Window_Type windowType; @@ -1035,22 +1053,22 @@ void Window::SetType( Dali::DevelWindow::Type type ) { switch( type ) { - case Dali::DevelWindow::NORMAL: + case Dali::Window::NORMAL: { windowType = ECORE_WL_WINDOW_TYPE_TOPLEVEL; break; } - case Dali::DevelWindow::NOTIFICATION: + case Dali::Window::NOTIFICATION: { windowType = ECORE_WL_WINDOW_TYPE_NOTIFICATION; break; } - case Dali::DevelWindow::UTILITY: + case Dali::Window::UTILITY: { windowType = ECORE_WL_WINDOW_TYPE_UTILITY; break; } - case Dali::DevelWindow::DIALOG: + case Dali::Window::DIALOG: { windowType = ECORE_WL_WINDOW_TYPE_DIALOG; break; @@ -1068,14 +1086,14 @@ void Window::SetType( Dali::DevelWindow::Type type ) mType = type; } -Dali::DevelWindow::Type Window::GetType() const +Dali::Window::Type Window::GetType() const { return mType; } -bool Window::SetNotificationLevel( Dali::DevelWindow::NotificationLevel::Type level ) +bool Window::SetNotificationLevel( Dali::Window::NotificationLevel::Type level ) { - if( mType != Dali::DevelWindow::NOTIFICATION ) + if( mType != Dali::Window::NOTIFICATION ) { DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetNotificationLevel: Not supported window type [%d]\n", mType ); return false; @@ -1090,27 +1108,27 @@ bool Window::SetNotificationLevel( Dali::DevelWindow::NotificationLevel::Type le switch( level ) { - case Dali::DevelWindow::NotificationLevel::NONE: + case Dali::Window::NotificationLevel::NONE: { notificationLevel = TIZEN_POLICY_LEVEL_NONE; break; } - case Dali::DevelWindow::NotificationLevel::BASE: + case Dali::Window::NotificationLevel::BASE: { notificationLevel = TIZEN_POLICY_LEVEL_DEFAULT; break; } - case Dali::DevelWindow::NotificationLevel::MEDIUM: + case Dali::Window::NotificationLevel::MEDIUM: { notificationLevel = TIZEN_POLICY_LEVEL_MEDIUM; break; } - case Dali::DevelWindow::NotificationLevel::HIGH: + case Dali::Window::NotificationLevel::HIGH: { notificationLevel = TIZEN_POLICY_LEVEL_HIGH; break; } - case Dali::DevelWindow::NotificationLevel::TOP: + case Dali::Window::NotificationLevel::TOP: { notificationLevel = TIZEN_POLICY_LEVEL_TOP; break; @@ -1153,12 +1171,12 @@ bool Window::SetNotificationLevel( Dali::DevelWindow::NotificationLevel::Type le return true; } -Dali::DevelWindow::NotificationLevel::Type Window::GetNotificationLevel() +Dali::Window::NotificationLevel::Type Window::GetNotificationLevel() const { - if( mType != Dali::DevelWindow::NOTIFICATION ) + if( mType != Dali::Window::NOTIFICATION ) { DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::GetNotificationLevel: Not supported window type [%d]\n", mType ); - return Dali::DevelWindow::NotificationLevel::NONE; + return Dali::Window::NotificationLevel::NONE; } while( !mEventHandler->mTizenPolicy ) @@ -1178,42 +1196,42 @@ Dali::DevelWindow::NotificationLevel::Type Window::GetNotificationLevel() if( !mEventHandler->mNotificationLevelChangeDone ) { DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::GetNotificationLevel: Error! [%d]\n", mEventHandler->mNotificationChangeState ); - return Dali::DevelWindow::NotificationLevel::NONE; + return Dali::Window::NotificationLevel::NONE; } - Dali::DevelWindow::NotificationLevel::Type level; + Dali::Window::NotificationLevel::Type level; switch( mEventHandler->mNotificationLevel ) { case TIZEN_POLICY_LEVEL_NONE: { - level = Dali::DevelWindow::NotificationLevel::NONE; + level = Dali::Window::NotificationLevel::NONE; break; } case TIZEN_POLICY_LEVEL_DEFAULT: { - level = Dali::DevelWindow::NotificationLevel::BASE; + level = Dali::Window::NotificationLevel::BASE; break; } case TIZEN_POLICY_LEVEL_MEDIUM: { - level = Dali::DevelWindow::NotificationLevel::MEDIUM; + level = Dali::Window::NotificationLevel::MEDIUM; break; } case TIZEN_POLICY_LEVEL_HIGH: { - level = Dali::DevelWindow::NotificationLevel::HIGH; + level = Dali::Window::NotificationLevel::HIGH; break; } case TIZEN_POLICY_LEVEL_TOP: { - level = Dali::DevelWindow::NotificationLevel::TOP; + level = Dali::Window::NotificationLevel::TOP; break; } default: { DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::GetNotificationLevel: invalid level [%d]\n", mEventHandler->mNotificationLevel ); - level = Dali::DevelWindow::NotificationLevel::NONE; + level = Dali::Window::NotificationLevel::NONE; break; } } @@ -1237,31 +1255,31 @@ void Window::SetOpaqueState( bool opaque ) DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetOpaqueState: opaque = %d\n", opaque ); } -bool Window::IsOpaqueState() +bool Window::IsOpaqueState() const { return mOpaqueState; } -bool Window::SetScreenMode( Dali::DevelWindow::ScreenMode::Type screenMode ) +bool Window::SetScreenOffMode(Dali::Window::ScreenOffMode::Type screenOffMode) { while( !mEventHandler->mTizenPolicy ) { wl_display_dispatch_queue( mEventHandler->mDisplay, mEventHandler->mEventQueue ); } - mEventHandler->mScreenModeChangeDone = false; - mEventHandler->mScreenModeChangeState = TIZEN_POLICY_ERROR_STATE_NONE; + mEventHandler->mScreenOffModeChangeDone = false; + mEventHandler->mScreenOffModeChangeState = TIZEN_POLICY_ERROR_STATE_NONE; unsigned int mode = 0; - switch( screenMode ) + switch( screenOffMode ) { - case Dali::DevelWindow::ScreenMode::DEFAULT: + case Dali::Window::ScreenOffMode::TIMEOUT: { mode = 0; break; } - case Dali::DevelWindow::ScreenMode::ALWAYS_ON: + case Dali::Window::ScreenOffMode::NEVER: { mode = 1; break; @@ -1272,30 +1290,30 @@ bool Window::SetScreenMode( Dali::DevelWindow::ScreenMode::Type screenMode ) int count = 0; - while( !mEventHandler->mScreenModeChangeDone && count < 3 ) + while( !mEventHandler->mScreenOffModeChangeDone && count < 3 ) { ecore_wl_flush(); wl_display_dispatch_queue( mEventHandler->mDisplay, mEventHandler->mEventQueue ); count++; } - if( !mEventHandler->mScreenModeChangeDone ) + if( !mEventHandler->mScreenOffModeChangeDone ) { - DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetScreenMode: Screen mode change is failed [%d, %d]\n", screenMode, mEventHandler->mScreenModeChangeState ); + DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetScreenOffMode: Screen mode change is failed [%d, %d]\n", screenOffMode, mEventHandler->mScreenOffModeChangeState ); return false; } - else if( mEventHandler->mScreenModeChangeState == TIZEN_POLICY_ERROR_STATE_PERMISSION_DENIED ) + else if( mEventHandler->mScreenOffModeChangeState == TIZEN_POLICY_ERROR_STATE_PERMISSION_DENIED ) { - DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetScreenMode: Permission denied! [%d]\n", screenMode ); + DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetScreenOffMode: Permission denied! [%d]\n", screenOffMode ); return false; } - DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetScreenMode: Screen mode is changed [%d]\n", mEventHandler->mScreenMode ); + DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::SetScreenOffMode: Screen mode is changed [%d]\n", mEventHandler->mScreenOffMode ); return true; } -Dali::DevelWindow::ScreenMode::Type Window::GetScreenMode() +Dali::Window::ScreenOffMode::Type Window::GetScreenOffMode() const { while( !mEventHandler->mTizenPolicy ) { @@ -1304,36 +1322,36 @@ Dali::DevelWindow::ScreenMode::Type Window::GetScreenMode() int count = 0; - while( !mEventHandler->mScreenModeChangeDone && count < 3 ) + while( !mEventHandler->mScreenOffModeChangeDone && count < 3 ) { ecore_wl_flush(); wl_display_dispatch_queue( mEventHandler->mDisplay, mEventHandler->mEventQueue ); count++; } - if( !mEventHandler->mScreenModeChangeDone ) + if( !mEventHandler->mScreenOffModeChangeDone ) { - DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::GetScreenMode: Error! [%d]\n", mEventHandler->mScreenModeChangeState ); - return Dali::DevelWindow::ScreenMode::DEFAULT; + DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::GetScreenOffMode: Error! [%d]\n", mEventHandler->mScreenOffModeChangeState ); + return Dali::Window::ScreenOffMode::TIMEOUT; } - Dali::DevelWindow::ScreenMode::Type screenMode = Dali::DevelWindow::ScreenMode::DEFAULT; + Dali::Window::ScreenOffMode::Type screenMode = Dali::Window::ScreenOffMode::TIMEOUT; - switch( mEventHandler->mScreenMode ) + switch( mEventHandler->mScreenOffMode ) { case 0: { - screenMode = Dali::DevelWindow::ScreenMode::DEFAULT; + screenMode = Dali::Window::ScreenOffMode::TIMEOUT; break; } case 1: { - screenMode = Dali::DevelWindow::ScreenMode::ALWAYS_ON; + screenMode = Dali::Window::ScreenOffMode::NEVER; break; } } - DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::GetScreenMode: screen mode [%d]\n", mEventHandler->mScreenMode ); + DALI_LOG_INFO( gWindowLogFilter, Debug::Verbose, "Window::GetScreenOffMode: screen mode [%d]\n", mEventHandler->mScreenOffMode ); return screenMode; } @@ -1381,7 +1399,7 @@ bool Window::SetBrightness( int brightness ) return true; } -int Window::GetBrightness() +int Window::GetBrightness() const { while( !mEventHandler->mTizenDisplayPolicy ) { @@ -1408,7 +1426,7 @@ int Window::GetBrightness() return mEventHandler->mBrightness; } -void Window::SetSize( Dali::DevelWindow::WindowSize size ) +void Window::SetSize( Dali::Window::WindowSize size ) { if( !mResizeEnabled ) { @@ -1425,23 +1443,23 @@ void Window::SetSize( Dali::DevelWindow::WindowSize size ) mSurface->MoveResize( positionSize ); - mAdaptor->SurfaceResizePrepare( Dali::Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); + mAdaptor->SurfaceResizePrepare( Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); // Emit signal - mResizedSignal.Emit( Dali::DevelWindow::WindowSize( positionSize.width, positionSize.height ) ); + mResizedSignal.Emit( Dali::Window::WindowSize( positionSize.width, positionSize.height ) ); - mAdaptor->SurfaceResizeComplete( Dali::Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); + mAdaptor->SurfaceResizeComplete( Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); } } -Dali::DevelWindow::WindowSize Window::GetSize() +Dali::Window::WindowSize Window::GetSize() const { PositionSize positionSize = mSurface->GetPositionSize(); - return Dali::DevelWindow::WindowSize( positionSize.width, positionSize.height ); + return Dali::Window::WindowSize( positionSize.width, positionSize.height ); } -void Window::SetPosition( Dali::DevelWindow::WindowPosition position ) +void Window::SetPosition( Dali::Window::WindowPosition position ) { if( !mResizeEnabled ) { @@ -1460,11 +1478,11 @@ void Window::SetPosition( Dali::DevelWindow::WindowPosition position ) } } -Dali::DevelWindow::WindowPosition Window::GetPosition() +Dali::Window::WindowPosition Window::GetPosition() const { PositionSize positionSize = mSurface->GetPositionSize(); - return Dali::DevelWindow::WindowPosition( positionSize.x, positionSize.y ); + return Dali::Window::WindowPosition( positionSize.x, positionSize.y ); } void Window::SetTransparency( bool transparent )