X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Fcommon%2Fwindow-impl.cpp;h=fbf04ca1326122f7dde255e67bf8763249be1ae6;hb=4a9e4c30b48b78a9767fe0810fad00ba9169e36d;hp=fdb01bd83a526a1325503f3541a01713d8373e0a;hpb=0e4caa74f44f5aa507610f16243b1e6aaa4421a8;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 fdb01bd..fbf04ca 100644 --- a/dali/internal/window-system/common/window-impl.cpp +++ b/dali/internal/window-system/common/window-impl.cpp @@ -86,7 +86,9 @@ Window::Window() mResizedSignal(), mDeleteRequestSignal(), mFocusChangeSignal(), - mResizeSignal() + mResizeSignal(), + mVisibilityChangedSignal(), + mTransitionEffectEventSignal() { } @@ -113,6 +115,7 @@ void Window::Initialize(const PositionSize& positionSize, const std::string& nam mWindowBase->IconifyChangedSignal().Connect( this, &Window::OnIconifyChanged ); mWindowBase->FocusChangedSignal().Connect( this, &Window::OnFocusChanged ); mWindowBase->DeleteRequestSignal().Connect( this, &Window::OnDeleteRequest ); + mWindowBase->TransitionEffectEventSignal().Connect( this, &Window::OnTransitionEffectEvent ); mWindowSurface->OutputTransformedSignal().Connect( this, &Window::OnOutputTransformed ); @@ -291,6 +294,9 @@ void Window::Show() { WindowVisibilityObserver* observer( mAdaptor ); observer->OnWindowShown(); + + Dali::Window handle( this ); + mVisibilityChangedSignal.Emit( handle, true ); } DALI_LOG_RELEASE_INFO( "Window (%p) Show(): iconified = %d\n", this, mIconified ); @@ -306,6 +312,9 @@ void Window::Hide() { WindowVisibilityObserver* observer( mAdaptor ); observer->OnWindowHidden(); + + Dali::Window handle( this ); + mVisibilityChangedSignal.Emit( handle, false ); } DALI_LOG_RELEASE_INFO( "Window (%p) Hide(): iconified = %d\n", this, mIconified ); @@ -575,6 +584,9 @@ void Window::OnIconifyChanged( bool iconified ) { WindowVisibilityObserver* observer( mAdaptor ); observer->OnWindowHidden(); + + Dali::Window handle( this ); + mVisibilityChangedSignal.Emit( handle, false ); } DALI_LOG_RELEASE_INFO( "Window (%p) Iconified: visible = %d\n", this, mVisible ); @@ -587,6 +599,9 @@ void Window::OnIconifyChanged( bool iconified ) { WindowVisibilityObserver* observer( mAdaptor ); observer->OnWindowShown(); + + Dali::Window handle( this ); + mVisibilityChangedSignal.Emit( handle, true ); } DALI_LOG_RELEASE_INFO( "Window (%p) Deiconified: visible = %d\n", this, mVisible ); @@ -618,6 +633,12 @@ void Window::OnDeleteRequest() mDeleteRequestSignal.Emit(); } +void Window::OnTransitionEffectEvent( DevelWindow::EffectState state, DevelWindow::EffectType type ) +{ + Dali::Window handle( this ); + mTransitionEffectEventSignal.Emit( handle, state, type ); +} + void Window::OnTouchPoint( Dali::Integration::Point& point, int timeStamp ) { FeedTouchPoint( point, timeStamp ); @@ -731,20 +752,20 @@ void Window::SetParent( Dali::Window& parent ) if ( DALI_UNLIKELY( parent ) ) { mParentWindow = parent; - Dali::Window grandParent = Dali::DevelWindow::GetParent( parent ); + Dali::Window self = Dali::Window( this ); // check circular parent window setting - if ( DALI_UNLIKELY( grandParent ) && mWindowBase->IsMatchedWindow( grandParent.GetNativeHandle() ) ) + if ( Dali::DevelWindow::GetParent( parent ) == self ) { Dali::DevelWindow::Unparent( parent ); } - mWindowBase->SetParent( parent.GetNativeHandle() ); + mWindowBase->SetParent( GetImplementation( mParentWindow ).mWindowBase ); } } void Window::Unparent() { - Any parent; - mWindowBase->SetParent( parent ); + mWindowBase->SetParent( nullptr ); + mParentWindow.Reset(); } Dali::Window Window::GetParent()