Browse Source

fix(widget): Added saving window state before closing

It's needed if user setup `Close to tray`
Fix #3397.
pull/3450/head
Diadlo 9 years ago
parent
commit
bfb5dae6fa
No known key found for this signature in database
GPG Key ID: 5AF9F2E29107C727
  1. 28
      src/widget/widget.cpp

28
src/widget/widget.cpp

@ -411,21 +411,29 @@ void Widget::init() @@ -411,21 +411,29 @@ void Widget::init()
bool Widget::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::WindowStateChange && obj != NULL)
QWindowStateChangeEvent *ce = nullptr;
Qt::WindowStates state = windowState();
switch (event->type())
{
QWindowStateChangeEvent * ce = static_cast<QWindowStateChangeEvent*>(event);
if (windowState() & Qt::WindowMinimized)
{
if (ce->oldState() & Qt::WindowMaximized)
wasMaximized = true;
else
wasMaximized = false;
}
case QEvent::Close:
// It's needed if user enable `Close to tray`
wasMaximized = state & Qt::WindowMaximized;
break;
case QEvent::WindowStateChange:
ce = static_cast<QWindowStateChangeEvent*>(event);
if (state & Qt::WindowMinimized && obj)
wasMaximized = ce->oldState() & Qt::WindowMaximized;
#ifdef Q_OS_MAC
emit windowStateChanged(windowState());
emit windowStateChanged(windowState());
#endif
break;
default:
break;
}
return false;
}

Loading…
Cancel
Save