hiding, not destroying window on close on OS X, fixed app event filter

This commit is contained in:
John Preston 2016-02-10 14:39:48 +03:00
parent 19d395a946
commit f2c45df524
5 changed files with 23 additions and 12 deletions

View File

@ -1016,7 +1016,7 @@ historyToEndSkip: 10px;
activeFadeInDuration: 500; activeFadeInDuration: 500;
activeFadeOutDuration: 3000; activeFadeOutDuration: 3000;
historyMaxWidth: 640px; historyMaxWidth: 680px;
msgRadius: 3px; msgRadius: 3px;

View File

@ -57,15 +57,8 @@ namespace {
QKeyEvent *ev = static_cast<QKeyEvent*>(e); QKeyEvent *ev = static_cast<QKeyEvent*>(e);
if (cPlatform() == dbipMac || cPlatform() == dbipMacOld) { if (cPlatform() == dbipMac || cPlatform() == dbipMacOld) {
if (ev->key() == Qt::Key_W && (ev->modifiers() & Qt::ControlModifier)) { if (ev->key() == Qt::Key_W && (ev->modifiers() & Qt::ControlModifier)) {
if (cWorkMode() == dbiwmTrayOnly || cWorkMode() == dbiwmWindowAndTray) { Ui::hideWindowNoQuit();
App::wnd()->minimizeToTray(); return true;
return true;
} else {
App::wnd()->hide();
App::wnd()->updateIsActive(cOfflineBlurTimeout());
App::wnd()->updateGlobalMenu();
return true;
}
} else if (ev->key() == Qt::Key_M && (ev->modifiers() & Qt::ControlModifier)) { } else if (ev->key() == Qt::Key_M && (ev->modifiers() & Qt::ControlModifier)) {
App::wnd()->setWindowState(Qt::WindowMinimized); App::wnd()->setWindowState(Qt::WindowMinimized);
return true; return true;

View File

@ -134,6 +134,22 @@ namespace Ui {
} }
} }
bool hideWindowNoQuit() {
if (!App::quiting()) {
if (Window *w = App::wnd()) {
if (cWorkMode() == dbiwmTrayOnly || cWorkMode() == dbiwmWindowAndTray) {
return w->minimizeToTray();
} else if (cPlatform() == dbipMac || cPlatform() == dbipMacOld) {
w->hide();
w->updateIsActive(cOfflineBlurTimeout());
w->updateGlobalMenu();
return true;
}
}
}
return false;
}
} }
namespace Notify { namespace Notify {

View File

@ -67,6 +67,8 @@ namespace Ui {
showPeerHistory(PeerId(0), 0); showPeerHistory(PeerId(0), 0);
} }
bool hideWindowNoQuit();
}; };
enum ClipStopperType { enum ClipStopperType {

View File

@ -990,7 +990,7 @@ bool Window::eventFilter(QObject *obj, QEvent *evt) {
} else if (t == QEvent::MouseButtonRelease) { } else if (t == QEvent::MouseButtonRelease) {
Ui::hideStickerPreview(); Ui::hideStickerPreview();
} }
if (obj == App::app()) { if (obj == Application::instance()) {
if (t == QEvent::ApplicationActivate) { if (t == QEvent::ApplicationActivate) {
psUserActionDone(); psUserActionDone();
QTimer::singleShot(1, this, SLOT(checkHistoryActivation())); QTimer::singleShot(1, this, SLOT(checkHistoryActivation()));
@ -1214,7 +1214,7 @@ void Window::toggleDisplayNotifyFromTray() {
} }
void Window::closeEvent(QCloseEvent *e) { void Window::closeEvent(QCloseEvent *e) {
if (MTP::authedId() && !Sandbox::isSavingSession() && minimizeToTray()) { if (MTP::authedId() && !Sandbox::isSavingSession() && Ui::hideWindowNoQuit()) {
e->ignore(); e->ignore();
} else { } else {
App::quit(); App::quit();