#include <dali/internal/window-system/common/window-system.h>
#include <dali/internal/window-system/common/window-render-surface.h>
#include <dali/internal/window-system/common/window-visibility-observer.h>
+#include <dali/devel-api/adaptor-framework/accessibility-impl.h>
namespace Dali
{
Window::~Window()
{
+ if ( mAdaptor )
+ {
+ auto bridge = Accessibility::Bridge::GetCurrentBridge();
+ auto accessible2 = mScene.GetRootLayer();
+ auto accessible = Accessibility::Accessible::Get( accessible2 );
+ bridge->RemoveTopLevelWindow( accessible );
+
+ mAdaptor->RemoveWindow( this );
+ }
+
if ( mEventHandler )
{
mEventHandler->RemoveObserver( *this );
{
mEventHandler = EventHandlerPtr(new EventHandler( mWindowSurface->GetWindowBase(), *mAdaptor ) );
mEventHandler->AddObserver( *this );
+
+ auto bridge = Accessibility::Bridge::GetCurrentBridge();
+ auto v = mScene.GetRootLayer();
+ auto accessible = Accessibility::Accessible::Get( v, true );
+ bridge->AddTopLevelWindow( accessible );
+
+ //FIXME: line below is temporary solution for missing "activate" signal and should be removed
+ Show();
}
void Window::OnSurfaceSet( Dali::RenderSurfaceInterface* surface )
mFocusChangeSignal.Emit( handle, focusIn );
mSurface->SetFullSwapNextFrame();
+
+ if (auto b = Dali::Accessibility::Bridge::GetCurrentBridge())
+ {
+ if (focusIn)
+ {
+ b->ApplicationShown();
+ }
+ else
+ {
+ b->ApplicationHidden();
+ }
+ }
}
void Window::OnOutputTransformed()