From e557f374c592dd92a480fc94f0a99d939c3fadc2 Mon Sep 17 00:00:00 2001 From: weizhixiang Date: Fri, 17 Jun 2022 13:21:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E8=8C=83=E4=BB=BB=E5=8A=A1=E6=A0=8F?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=95=B4=E6=B4=81=E5=BA=A6=E5=92=8C=E5=AE=89=E5=85=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Log: 规范任务栏模块代码 Task: https://pms.uniontech.com/task-view-150885.html Influence: 无 Change-Id: I385fbb71cf4c1408ffd4c6684128b412a187ab28 --- src/lib/xcbutils.cpp | 4 +++- src/modules/dock/appmenu.cpp | 2 +- src/modules/dock/dock.cpp | 7 ++++--- src/modules/dock/entry.cpp | 1 - src/modules/dock/x11manager.cpp | 16 ++++++++-------- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/lib/xcbutils.cpp b/src/lib/xcbutils.cpp index ebfcdb8..16f10ab 100644 --- a/src/lib/xcbutils.cpp +++ b/src/lib/xcbutils.cpp @@ -496,7 +496,9 @@ WMClass XCBUtils::getWMClass(XWindow xid) if (reply.instance_name) ret.instanceName.assign(reply.instance_name); - xcb_icccm_get_wm_class_reply_wipe(&reply); + if (reply.class_name || reply.instance_name) { + xcb_icccm_get_wm_class_reply_wipe(&reply); + } return ret; } diff --git a/src/modules/dock/appmenu.cpp b/src/modules/dock/appmenu.cpp index 1bdd377..89f4139 100644 --- a/src/modules/dock/appmenu.cpp +++ b/src/modules/dock/appmenu.cpp @@ -81,7 +81,7 @@ QString AppMenu::getMenuJsonStr() objItem["itemIconInactive"] = item.iconInactive; objItem["showCheckMark"] = item.showCheckMark; objItem["itemSubMenu"] = item.subMenu ? item.subMenu->getMenuJsonStr() : ""; - array.push_back(QJsonValue(objItem)); + array.push_back(objItem); } obj["items"] = QJsonValue(array); obj["checkableMenu"] = checkableMenu; diff --git a/src/modules/dock/dock.cpp b/src/modules/dock/dock.cpp index cc92580..c1a7384 100644 --- a/src/modules/dock/dock.cpp +++ b/src/modules/dock/dock.cpp @@ -203,13 +203,14 @@ void Dock::undockEntry(Entry *entry) QString desktopFile = entry->getFileName(); QString filebase(desktopFile.data(), desktopFile.size() - 9); if (desktopFile.contains(scratchDir)) { - for (auto &ext : QStringList() << ".desktop" << ".sh" << ".png") { + QStringList suffixs {".desktop", ".sh", ".png"}; + for (auto &ext : suffixs) { QString fileName = filebase + ext; QFile file(fileName); - if (file.exists()) + if (file.exists()) { file.remove(); + } } - } if (entry->hasWindow()) { diff --git a/src/modules/dock/entry.cpp b/src/modules/dock/entry.cpp index 6b8dcd8..ba7d3f9 100644 --- a/src/modules/dock/entry.cpp +++ b/src/modules/dock/entry.cpp @@ -579,7 +579,6 @@ void Entry::forceQuit() } } } - } void Entry::presentWindows() diff --git a/src/modules/dock/x11manager.cpp b/src/modules/dock/x11manager.cpp index c68abee..7174cbc 100644 --- a/src/modules/dock/x11manager.cpp +++ b/src/modules/dock/x11manager.cpp @@ -221,9 +221,9 @@ void X11Manager::handleClientListChanged() QString wmName(XCB->getWMName(xid).c_str()); if (pid != 0 || (wmClass.className.size() > 0 && wmClass.instanceName.size() > 0) || wmName.size() > 0 || XCB->getWMCommand(xid).size() > 0) { - WindowInfoBase *base = static_cast(info); - if (base) { - Q_EMIT requestAttachOrDetachWindow(base); + + if (info) { + Q_EMIT requestAttachOrDetachWindow(info); } } } @@ -248,9 +248,8 @@ void X11Manager::handleActiveWindowChangedX() { XWindow active = XCB->getActiveWindow(); WindowInfoX *info = findWindowByXid(active); - WindowInfoBase *base = static_cast(info); - if (base) { - Q_EMIT requestHandleActiveWindowChange(base); + if (info) { + Q_EMIT requestHandleActiveWindowChange(info); } } @@ -382,8 +381,9 @@ void X11Manager::handlePropertyNotifyEvent(XWindow xid, XCBAtom atom) needAttachOrDetach = true; } - if (needAttachOrDetach) - dock->attachOrDetachWindow(winInfo); + if (needAttachOrDetach && winInfo) { + Q_EMIT requestAttachOrDetachWindow(winInfo); + } Entry *entry = dock->getEntryByWindowId(xid); if (!entry)