For the multi-window case, we need to send 'showing' event when
the AT-SPI bridge turns on. So far, we have sent only 'activate' event
which is enough for the non-multi-window case.
And the 'mIsShown' does not care about the multi-window case.
If one window calls WindowShown, then other windows cannot send 'showing'
event because of the 'mIsShown'.
Change-Id: I501953e8dc1475550afc357293f21dd8fcc98620
DBus::DBusClient mDirectReadingClient;
bool mIsScreenReaderEnabled = false;
bool mIsEnabled = false;
- bool mIsShown = false;
std::unordered_map<int32_t, std::function<void(std::string)>> mDirectReadingCallbacks;
Dali::Actor mHighlightedActor;
std::function<void(Dali::Actor)> mHighlightClearAction;
*/
void WindowShown(Dali::Window window) override
{
- if(!mIsShown && IsUp())
+ if(IsUp())
{
EmitShown(window);
}
- mIsShown = true;
}
/**
*/
void WindowHidden(Dali::Window window) override
{
- if(mIsShown && IsUp())
+ if(IsUp())
{
EmitHidden(window);
}
- mIsShown = false;
}
/**
*/
void WindowFocused(Dali::Window window) override
{
- if(mIsShown && IsUp())
+ if(IsUp())
{
EmitActivate(window);
}
*/
void WindowUnfocused(Dali::Window window) override
{
- if(mIsShown && IsUp())
+ if(IsUp())
{
EmitDeactivate(window);
}
auto accessible = Accessibility::Accessible::Get(rootLayer);
bridge->AddTopLevelWindow(accessible);
+ if(!mVisible || mIconified)
+ {
+ return;
+ }
+
+ Dali::Window handle(this);
+ bridge->WindowShown(handle);
+
if(mFocused)
{
- Dali::Window handle(this);
bridge->WindowFocused(handle);
}
}