mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
disable auto hide when popup menu registered
Change-Id: Iaa217e09f52ddabdeb695bf90563c9a954a512d2
This commit is contained in:
parent
e10e6dc2d2
commit
d65e274e25
@ -124,6 +124,7 @@ void DockItem::showContextMenu()
|
||||
DBusMenu *menuInter = new DBusMenu(path.path(), this);
|
||||
|
||||
connect(menuInter, &DBusMenu::ItemInvoked, this, &DockItem::invokedMenuItem);
|
||||
connect(menuInter, &DBusMenu::MenuUnregistered, this, &DockItem::menuUnregistered);
|
||||
connect(menuInter, &DBusMenu::MenuUnregistered, menuInter, &DBusMenu::deleteLater, Qt::QueuedConnection);
|
||||
|
||||
menuInter->ShowMenu(QString(QJsonDocument(menuObject).toJson()));
|
||||
|
@ -29,6 +29,8 @@ public:
|
||||
|
||||
signals:
|
||||
void dragStarted() const;
|
||||
void menuUnregistered() const;
|
||||
void requestWindowAutoHide(const bool autoHide) const;
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *e);
|
||||
|
@ -114,6 +114,8 @@ void MainPanel::dropEvent(QDropEvent *e)
|
||||
void MainPanel::initItemConnection(DockItem *item)
|
||||
{
|
||||
connect(item, &DockItem::dragStarted, this, &MainPanel::itemDragStarted);
|
||||
connect(item, &DockItem::menuUnregistered, this, &MainPanel::requestRefershWindowVisible);
|
||||
connect(item, &DockItem::requestWindowAutoHide, this, &MainPanel::requestWindowAutoHide);
|
||||
}
|
||||
|
||||
DockItem *MainPanel::itemAt(const QPoint &point)
|
||||
|
@ -18,6 +18,10 @@ public:
|
||||
void updateDockPosition(const Position dockPosition);
|
||||
void updateDockDisplayMode(const Dock::DisplayMode displayMode);
|
||||
|
||||
signals:
|
||||
void requestRefershWindowVisible() const;
|
||||
void requestWindowAutoHide(const bool autoHide) const;
|
||||
|
||||
private:
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
void dragEnterEvent(QDragEnterEvent *e);
|
||||
|
@ -116,6 +116,9 @@ void MainWindow::initConnections()
|
||||
connect(m_settings, &DockSettings::windowVisibleChanegd, this, &MainWindow::updatePanelVisible, Qt::QueuedConnection);
|
||||
connect(m_settings, &DockSettings::autoHideChanged, this, &MainWindow::updatePanelVisible);
|
||||
|
||||
connect(m_mainPanel, &MainPanel::requestRefershWindowVisible, this, &MainWindow::updatePanelVisible);
|
||||
connect(m_mainPanel, &MainPanel::requestWindowAutoHide, m_settings, &DockSettings::setAutoHide);
|
||||
|
||||
connect(m_panelHideAni, &QPropertyAnimation::finished, this, &MainWindow::updateGeometry);
|
||||
|
||||
connect(m_positionUpdateTimer, &QTimer::timeout, this, &MainWindow::updatePosition, Qt::QueuedConnection);
|
||||
@ -322,8 +325,6 @@ void MainWindow::updatePanelVisible()
|
||||
|
||||
const Dock::HideState state = m_settings->hideState();
|
||||
|
||||
// qDebug() << state;
|
||||
|
||||
if (state == Unknown)
|
||||
return;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user