#if defined(DEBUG_ENABLED)
Debug::Filter* gWindowLogFilter = Debug::Filter::New(Debug::NoLogging, false, "LOG_WINDOW");
#endif
-
} // unnamed namespace
Window* Window::New(const PositionSize& positionSize, const std::string& name, const std::string& className, Dali::WindowType type, bool isTransparent)
mIsTransparent(false),
mIsFocusAcceptable(true),
mIconified(false),
+ mMaximized(false),
mOpaqueState(false),
mWindowRotationAcknowledgement(false),
mFocused(false),
// Connect signals
mWindowBase->IconifyChangedSignal().Connect(this, &Window::OnIconifyChanged);
+ mWindowBase->MaximizeChangedSignal().Connect(this, &Window::OnMaximizeChanged);
mWindowBase->FocusChangedSignal().Connect(this, &Window::OnFocusChanged);
mWindowBase->DeleteRequestSignal().Connect(this, &Window::OnDeleteRequest);
mWindowBase->TransitionEffectEventSignal().Connect(this, &Window::OnTransitionEffectEvent);
void Window::OnIconifyChanged(bool iconified)
{
+ const bool isActuallyChanged = (iconified != mIconified);
+ auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge();
+ Dali::Window handle(this);
+
if(iconified)
{
mIconified = true;
if(mVisible)
{
- Dali::Window handle(this);
mVisibilityChangedSignal.Emit(handle, false);
- Dali::Accessibility::Bridge::GetCurrentBridge()->WindowHidden(handle);
+ bridge->WindowHidden(handle);
WindowVisibilityObserver* observer(mAdaptor);
observer->OnWindowHidden();
}
+ if(isActuallyChanged)
+ {
+ bridge->WindowMinimized(handle);
+ }
+
DALI_LOG_RELEASE_INFO("Window (%p), WinId (%d), Iconified: visible = %d\n", this, mNativeWindowId, mVisible);
}
else
if(mVisible)
{
- Dali::Window handle(this);
mVisibilityChangedSignal.Emit(handle, true);
- Dali::Accessibility::Bridge::GetCurrentBridge()->WindowShown(handle);
+ bridge->WindowShown(handle);
WindowVisibilityObserver* observer(mAdaptor);
observer->OnWindowShown();
}
+ if(isActuallyChanged)
+ {
+ bridge->WindowRestored(handle, Dali::Accessibility::WindowRestoreType::RESTORE_FROM_ICONIFY);
+ }
+
DALI_LOG_RELEASE_INFO("Window (%p), WinId (%d), Deiconified: visible = %d\n", this, mNativeWindowId, mVisible);
}
mSurface->SetFullSwapNextFrame();
}
-void Window::OnFocusChanged(bool focusIn)
+void Window::OnMaximizeChanged(bool maximized)
{
- Dali::Window handle(this);
- mFocusChangeSignal.Emit(handle, focusIn);
+ const bool isActuallyChanged = (maximized != mMaximized);
- mSurface->SetFullSwapNextFrame();
-
- if(auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge())
+ if(isActuallyChanged)
{
- if(focusIn)
+ auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge();
+ Dali::Window handle(this);
+
+ if(maximized)
{
- bridge->WindowFocused(handle);
+ mMaximized = true;
+ bridge->WindowMaximized(handle);
}
else
{
- bridge->WindowUnfocused(handle);
+ mMaximized = false;
+ bridge->WindowRestored(handle, Dali::Accessibility::WindowRestoreType::RESTORE_FROM_MAXIMIZE);
}
}
+}
+
+void Window::OnFocusChanged(bool focusIn)
+{
+ Dali::Window handle(this);
+ mFocusChangeSignal.Emit(handle, focusIn);
+
+ mSurface->SetFullSwapNextFrame();
+ auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge();
+
+ if(focusIn)
+ {
+ bridge->WindowFocused(handle);
+ }
+ else
+ {
+ bridge->WindowUnfocused(handle);
+ }
+
mFocused = focusIn;
}