mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
fix: update daemonDockInterface when the dde-daemon dock interface init after dde-dock
当dock比dde-daemon的dockInterface启动更早,dock会delete该interface指针后重新new 但是在menuworker里面,还是使用的未更新的dockInterface对象,即野指针 因此会导致调用接口后崩溃 Log: Update daemonDockInterface when daemon init behind dock Influence: 注销右键点击出现菜单栏 Bug: https://pms.uniontech.com/bug-view-155357.html Change-Id: I666c3e66f3bfbdbd66c230d8d5ea72175b355289
This commit is contained in:
parent
458ade5359
commit
1c57108dc1
@ -196,3 +196,8 @@ void MenuWorker::setAutoHide(const bool autoHide)
|
|||||||
m_autoHide = autoHide;
|
m_autoHide = autoHide;
|
||||||
emit autoHideChanged(m_autoHide);
|
emit autoHideChanged(m_autoHide);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MenuWorker::onNotifyDaemonInterfaceUpdate(DBusDock *dockInter)
|
||||||
|
{
|
||||||
|
m_dockInter = dockInter;
|
||||||
|
}
|
||||||
|
@ -45,6 +45,7 @@ signals:
|
|||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setAutoHide(const bool autoHide);
|
void setAutoHide(const bool autoHide);
|
||||||
|
void onNotifyDaemonInterfaceUpdate(DBusDock *dockInter);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QMenu *createMenu(QMenu *settingsMenu);
|
QMenu *createMenu(QMenu *settingsMenu);
|
||||||
|
@ -1371,6 +1371,7 @@ void MultiScreenWorker::checkDaemonDockService()
|
|||||||
FREE_POINT(m_dockInter);
|
FREE_POINT(m_dockInter);
|
||||||
|
|
||||||
m_dockInter = new DBusDock(serverName, "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus(), this);
|
m_dockInter = new DBusDock(serverName, "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus(), this);
|
||||||
|
Q_EMIT notifyDaemonInterfaceUpdate();
|
||||||
// connect
|
// connect
|
||||||
connectionInit(m_dockInter);
|
connectionInit(m_dockInter);
|
||||||
|
|
||||||
|
@ -169,6 +169,7 @@ signals:
|
|||||||
void requestStopHideAni();
|
void requestStopHideAni();
|
||||||
|
|
||||||
void requestUpdateDockEntry();
|
void requestUpdateDockEntry();
|
||||||
|
void notifyDaemonInterfaceUpdate();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void onAutoHideChanged(bool autoHide);
|
void onAutoHideChanged(bool autoHide);
|
||||||
|
@ -378,6 +378,10 @@ void MainWindow::initConnections()
|
|||||||
// 响应后端触控屏拖拽任务栏高度长按信号
|
// 响应后端触控屏拖拽任务栏高度长按信号
|
||||||
connect(TouchSignalManager::instance(), &TouchSignalManager::middleTouchPress, this, &MainWindow::touchRequestResizeDock);
|
connect(TouchSignalManager::instance(), &TouchSignalManager::middleTouchPress, this, &MainWindow::touchRequestResizeDock);
|
||||||
connect(TouchSignalManager::instance(), &TouchSignalManager::touchMove, m_dragWidget, &DragWidget::onTouchMove);
|
connect(TouchSignalManager::instance(), &TouchSignalManager::touchMove, m_dragWidget, &DragWidget::onTouchMove);
|
||||||
|
|
||||||
|
connect(m_multiScreenWorker, &MultiScreenWorker::notifyDaemonInterfaceUpdate, m_menuWorker, [this]() {
|
||||||
|
m_menuWorker->onNotifyDaemonInterfaceUpdate(m_multiScreenWorker->dockInter());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user