diff --git a/src/modules/dock/dock.cpp b/src/modules/dock/dock.cpp index 1c3478d..cc92580 100644 --- a/src/modules/dock/dock.cpp +++ b/src/modules/dock/dock.cpp @@ -87,8 +87,6 @@ Dock::Dock(QObject *parent) connect(x11Manager, &X11Manager::requestHandleActiveWindowChange, this, &Dock::handleActiveWindowChanged); connect(x11Manager, &X11Manager::requestAttachOrDetachWindow, this, &Dock::attachOrDetachWindow); } - - Q_EMIT serviceRestarted(); } Dock::~Dock() diff --git a/src/modules/dock/dockmanager.cpp b/src/modules/dock/dockmanager.cpp index 88bb6da..23ab61e 100644 --- a/src/modules/dock/dockmanager.cpp +++ b/src/modules/dock/dockmanager.cpp @@ -38,8 +38,11 @@ DockManager::DockManager(QObject *parent) return; } - if (!con.registerObject(dbusPath, dock, QDBusConnection::ExportAdaptors)) + if (!con.registerObject(dbusPath, dock, QDBusConnection::ExportAdaptors)) { qWarning() << "register object Dock1 error:" << con.lastError().message(); + } + + dock->serviceRestarted(); } DockManager::~DockManager() diff --git a/src/modules/dock/entry.cpp b/src/modules/dock/entry.cpp index ba4d204..d5eaa71 100644 --- a/src/modules/dock/entry.cpp +++ b/src/modules/dock/entry.cpp @@ -652,7 +652,7 @@ void Entry::active(uint32_t timestamp) dock->doActiveWindow(xid); } else if (windowInfoMap.size() == 1) { XCB->minimizeWindow(xid); - } else if (dock->getActiveWindow()->getXid() == xid) { + } else if (dock->getActiveWindow() && dock->getActiveWindow()->getXid() == xid) { WindowInfoBase *nextWin = findNextLeader(); if (nextWin) { nextWin->activate();