Merge pull request #2581 from nextcloud/ensure_systray_window_doesnt_prevent_windows_session_close

Ensure we quickly show/hide the systray window on startup
This commit is contained in:
Camila 2020-10-22 19:48:43 +02:00 committed by GitHub
commit 2bcc99792d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 0 deletions

View file

@ -206,6 +206,15 @@ void Systray::positionWindow(QQuickWindow *window) const
window->setPosition(position);
}
void Systray::forceWindowInit(QQuickWindow *window) const
{
// HACK: At least on Windows, if the systray window is not shown at least once
// it can prevent session handling to carry on properly, so we show/hide it here
// this shouldn't flicker
window->show();
window->hide();
}
QScreen *Systray::currentScreen() const
{
const auto screens = QGuiApplication::screens();

View file

@ -57,6 +57,7 @@ public:
Q_INVOKABLE void setOpened();
Q_INVOKABLE void setClosed();
Q_INVOKABLE void positionWindow(QQuickWindow *window) const;
Q_INVOKABLE void forceWindowInit(QQuickWindow *window) const;
signals:
void currentUserChanged();

View file

@ -24,6 +24,8 @@ Window {
Accessible.role: Accessible.Application
Accessible.name: qsTr("Nextcloud desktop main dialog")
Component.onCompleted: Systray.forceWindowInit(trayWindow)
// Close tray window when focus is lost (e.g. click somewhere else on the screen)
onActiveChanged: {
if(!active) {