X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Fcommon%2Fwindow-impl.cpp;h=d5f838304c1e6877e2d95d383307957b4dc67825;hb=1806816d0c6af45354de742d27fc6f25ddc145d5;hp=0ede554468773ce0e22cc7f4c2322a06d29e319a;hpb=aa72090722323a2372f2a8ce6c3eac9eb9ec1197;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/common/window-impl.cpp b/dali/internal/window-system/common/window-impl.cpp index 0ede554..d5f8383 100644 --- a/dali/internal/window-system/common/window-impl.cpp +++ b/dali/internal/window-system/common/window-impl.cpp @@ -20,7 +20,6 @@ // EXTERNAL HEADERS #include -#include #include #include #include @@ -78,13 +77,16 @@ Window::Window() mOpaqueState( false ), mResizeEnabled( false ), mType( Dali::Window::NORMAL ), + mParentWindow( NULL ), mPreferredOrientation( Dali::Window::PORTRAIT ), mRotationAngle( 0 ), mWindowWidth( 0 ), mWindowHeight( 0 ), mFocusChangedSignal(), mResizedSignal(), - mDeleteRequestSignal() + mDeleteRequestSignal(), + mFocusChangeSignal(), + mResizeSignal() { } @@ -165,16 +167,19 @@ std::string Window::GetClassName() const void Window::Raise() { mWindowBase->Raise(); + DALI_LOG_RELEASE_INFO( "Window (%p) Raise() \n", this ); } void Window::Lower() { mWindowBase->Lower(); + DALI_LOG_RELEASE_INFO( "Window (%p) Lower() \n", this ); } void Window::Activate() { mWindowBase->Activate(); + DALI_LOG_RELEASE_INFO( "Window (%p) Activate() \n", this ); } uint32_t Window::GetLayerCount() const @@ -187,6 +192,11 @@ Dali::Layer Window::GetLayer( uint32_t depth ) const return mScene.GetLayer( depth ); } +Dali::RenderTaskList Window::GetRenderTaskList() const +{ + return mScene.GetRenderTaskList(); +} + void Window::AddAvailableOrientation( Dali::Window::WindowOrientation orientation ) { bool found = false; @@ -444,9 +454,19 @@ void Window::SetSize( Dali::Window::WindowSize size ) { Uint16Pair newSize( newRect.width, newRect.height ); + bool forceUpdate = false; + if( mWindowBase->IsEglWindowRotationSupported() ) + { + forceUpdate = true; + } + + SurfaceResized( forceUpdate ); + mAdaptor->SurfaceResizePrepare( mSurface.get(), newSize ); + Dali::Window handle( this ); mResizedSignal.Emit( newSize ); + mResizeSignal.Emit( handle, newSize ); mAdaptor->SurfaceResizeComplete( mSurface.get(), newSize ); } @@ -498,10 +518,19 @@ void Window::SetPositionSize( PositionSize positionSize ) { Uint16Pair newSize( newRect.width, newRect.height ); + bool forceUpdate = false; + if( mWindowBase->IsEglWindowRotationSupported() ) + { + forceUpdate = true; + } + + SurfaceResized( forceUpdate ); + mAdaptor->SurfaceResizePrepare( mSurface.get(), newSize ); + Dali::Window handle( this ); mResizedSignal.Emit( newSize ); - + mResizeSignal.Emit( handle, newSize ); mAdaptor->SurfaceResizeComplete( mSurface.get(), newSize ); } } @@ -566,12 +595,20 @@ void Window::OnIconifyChanged( bool iconified ) void Window::OnFocusChanged( bool focusIn ) { + Dali::Window handle( this ); mFocusChangedSignal.Emit( focusIn ); + mFocusChangeSignal.Emit( handle, focusIn ); } void Window::OnOutputTransformed() { + bool forceUpdate = false; + if( mWindowBase->IsEglWindowRotationSupported() ) + { + forceUpdate = true; + } PositionSize positionSize = mSurface->GetPositionSize(); + SurfaceResized( forceUpdate ); mAdaptor->SurfaceResizePrepare( mSurface.get(), Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); mAdaptor->SurfaceResizeComplete( mSurface.get(), Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); } @@ -607,12 +644,22 @@ void Window::OnRotation( const RotationEvent& rotation ) mWindowSurface->RequestRotation( mRotationAngle, mWindowWidth, mWindowHeight ); - mAdaptor->SurfaceResizePrepare( mSurface.get(), Adaptor::SurfaceSize( mRotationAngle, mWindowHeight ) ); + bool forceUpdate = false; + if( mWindowBase->IsEglWindowRotationSupported() ) + { + forceUpdate = true; + } + + SurfaceResized( forceUpdate ); + + mAdaptor->SurfaceResizePrepare( mSurface.get(), Adaptor::SurfaceSize( mWindowWidth, mWindowHeight ) ); // Emit signal - mResizedSignal.Emit( Dali::Window::WindowSize( mRotationAngle, mWindowHeight ) ); + Dali::Window handle( this ); + mResizedSignal.Emit( Dali::Window::WindowSize( mWindowWidth, mWindowHeight ) ); + mResizeSignal.Emit( handle, Dali::Window::WindowSize( mWindowWidth, mWindowHeight ) ); - mAdaptor->SurfaceResizeComplete( mSurface.get(), Adaptor::SurfaceSize( mRotationAngle, mWindowHeight ) ); + mAdaptor->SurfaceResizeComplete( mSurface.get(), Adaptor::SurfaceSize( mWindowWidth, mWindowHeight ) ); } void Window::OnPause() @@ -679,6 +726,32 @@ Dali::Window Window::Get( Dali::Actor actor ) return Dali::Window( windowImpl ); } +void Window::SetParent( Dali::Window& parent ) +{ + if ( DALI_UNLIKELY( parent ) ) + { + mParentWindow = parent; + Dali::Window self = Dali::Window( this ); + // check circular parent window setting + if ( Dali::DevelWindow::GetParent( parent ) == self ) + { + Dali::DevelWindow::Unparent( parent ); + } + mWindowBase->SetParent( GetImplementation( mParentWindow ).mWindowBase ); + } +} + +void Window::Unparent() +{ + mWindowBase->SetParent( nullptr ); + mParentWindow.Reset(); +} + +Dali::Window Window::GetParent() +{ + return mParentWindow; +} + } // Adaptor } // Internal