From 49e6d5ae80899613d0547fd6f83f7e6bebaf487f Mon Sep 17 00:00:00 2001 From: weizhixiang Date: Thu, 16 Jun 2022 14:09:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9AM=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E4=BB=BB=E5=8A=A1=E6=A0=8F=E4=B8=8A=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E5=8F=98=E6=88=90=E9=BB=98=E8=AE=A4=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整ServiceRestarted发送位置,使其正常发送到DBus上 Log: Task: https://pms.uniontech.com/task-view-150375.html Influence: AM重启后,任务栏正常显示 Change-Id: I026c52c716ed950bf175b428a0bfc6e93ba5ce38 --- src/modules/dock/dock.cpp | 2 -- src/modules/dock/dockmanager.cpp | 5 ++++- src/modules/dock/entry.cpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) 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();