From 61336764f30378ce1104d1ba3dfc48ecd6d7f66b Mon Sep 17 00:00:00 2001 From: chenjun Date: Sat, 21 Aug 2021 16:14:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9C=A8=E7=95=8C=E9=9D=A2size=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=AE=8C=E6=AF=95=E5=90=8E=E5=86=8D=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 先通过消息循环让各部件调整好size后再计算图标大小,避免因为各部件size没有调整完导致计算的图标大小不准确,然后重复触发 PluginAreaWidget的reszie事件并重复计算,造成任务栏图标抖动问题 Log: 修复任务栏在无操作的情况下图标异常抖动的问题 Bug: https://pms.uniontech.com/zentao/bug-view-90724.html Change-Id: Ia9b60f1829efdfa4e55fdb25403ab60e46d5ba94 --- frame/window/mainpanelcontrol.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/frame/window/mainpanelcontrol.cpp b/frame/window/mainpanelcontrol.cpp index 689a20b53..481f3c8ff 100755 --- a/frame/window/mainpanelcontrol.cpp +++ b/frame/window/mainpanelcontrol.cpp @@ -84,7 +84,6 @@ MainPanelControl::MainPanelControl(QWidget *parent) m_appAreaSonWidget->installEventFilter(this); m_trayAreaWidget->installEventFilter(this); m_desktopWidget->installEventFilter(this); - m_pluginAreaWidget->installEventFilter(this); //在设置每条线大小前,应该设置fixedsize(0,0) //应为paintEvent函数会先调用设置背景颜色,大小为随机值 @@ -314,9 +313,12 @@ void MainPanelControl::removePluginAreaItem(QWidget *wdg) void MainPanelControl::resizeEvent(QResizeEvent *event) { + //先通过消息循环让各部件调整好size后再计算图标大小 + //避免因为部件size没有调整完导致计算的图标大小不准确 + //然后重复触发m_pluginAreaWidget的reszie事件并重复计算,造成任务栏图标抖动问题 + QWidget::resizeEvent(event); resizeDesktopWidget(); resizeDockIcon(); - return QWidget::resizeEvent(event); } /**根据任务栏所在位置, 设置应用区域控件的大小 @@ -634,17 +636,6 @@ bool MainPanelControl::eventFilter(QObject *watched, QEvent *event) } } - // fix:88133 在计算icon大小时m_pluginAreaWidget的数据错误 - if (watched == m_pluginAreaWidget) { - switch (event->type()) { - case QEvent::Resize: - resizeDockIcon(); - break; - default: - break; - } - } - // 高效模式下,鼠标移入移出'显示桌面'区域的处理 if (watched == m_desktopWidget) { if (event->type() == QEvent::Enter) {