diff --git a/frame/item/pluginsitem.cpp b/frame/item/pluginsitem.cpp
index d0b4fd790..796764c6d 100644
--- a/frame/item/pluginsitem.cpp
+++ b/frame/item/pluginsitem.cpp
@@ -161,8 +161,18 @@ void PluginsItem::mousePressEvent(QMouseEvent *e)
if (e->button() == Qt::LeftButton)
MousePressPoint = e->pos();
- // context menu will handle in DockItem
- DockItem::mousePressEvent(e);
+ //handle context menu
+ m_popupTipsDelayTimer->stop();
+ hideNonModel();
+
+ if (e->button() == Qt::RightButton) {
+ if (perfectIconRect().contains(e->pos())) {
+ return (m_gsettings && m_gsettings->get("menuEnable").toBool()) ? showContextMenu() : void();
+ }
+ }
+
+ // same as e->ignore above
+ QWidget::mousePressEvent(e);
}
void PluginsItem::mouseMoveEvent(QMouseEvent *e)
diff --git a/gschema/com.deepin.dde.dock.module.gschema.xml b/gschema/com.deepin.dde.dock.module.gschema.xml
index acc0ccf65..068ae11f5 100644
--- a/gschema/com.deepin.dde.dock.module.gschema.xml
+++ b/gschema/com.deepin.dde.dock.module.gschema.xml
@@ -105,6 +105,13 @@
Control Module Enable
+
+ true
+ Menu Enable
+
+ Control Menu Enable
+
+
@@ -121,6 +128,13 @@
Control Module Enable
+
+ true
+ Menu Enable
+
+ Control Menu Enable
+
+
@@ -137,6 +151,13 @@
Control Module Enable
+
+ true
+ Menu Enable
+
+ Control Menu Enable
+
+
@@ -153,6 +174,13 @@
Control Module Enable
+
+ true
+ Menu Enable
+
+ Control Menu Enable
+
+
@@ -176,6 +204,13 @@
Show TimeToFull
+
+ true
+ Menu Enable
+
+ Control Menu Enable
+
+
@@ -192,6 +227,13 @@
Control Module Enable
+
+ true
+ Menu Enable
+
+ Control Menu Enable
+
+
@@ -208,6 +250,13 @@
Control Module Enable
+
+ true
+ Menu Enable
+
+ Control Menu Enable
+
+
@@ -224,6 +273,13 @@
Control Module Enable
+
+ true
+ Menu Enable
+
+ Control Menu Enable
+
+
diff --git a/plugins/tray/system-trays/systemtrayitem.cpp b/plugins/tray/system-trays/systemtrayitem.cpp
index 907c54fe1..8870d799c 100644
--- a/plugins/tray/system-trays/systemtrayitem.cpp
+++ b/plugins/tray/system-trays/systemtrayitem.cpp
@@ -239,7 +239,7 @@ void SystemTrayItem::mousePressEvent(QMouseEvent *event)
if (event->button() == Qt::RightButton) {
if (perfectIconRect().contains(event->pos(), true)) {
- return showContextMenu();
+ return (m_gsettings && m_gsettings->get("menuEnable").toBool()) ? showContextMenu() : void();
}
}