diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index 31b33d56737514c4285f159843fd7424bb8086a0..030061f8bcbaba94732750cf2a0d788d28abd32e 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -426,6 +426,19 @@ void MiniProjectTargetSelector::setVisible(bool visible) m_projectAction->setChecked(visible); } +// This is a workaround for the problem that Windows +// will let the mouse events through when you click +// outside a popup to close it. This causes the popup +// to open on mouse release if you hit the button, which +// +// +// A similar case can be found in QComboBox +void MiniProjectTargetSelector::mousePressEvent(QMouseEvent *e) +{ + setAttribute(Qt::WA_NoMouseReplay); + QWidget::mousePressEvent(e); +} + void MiniProjectTargetSelector::addProject(ProjectExplorer::Project* project) { QTC_ASSERT(project, return); diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.h b/src/plugins/projectexplorer/miniprojecttargetselector.h index 13f9d5427f518895b3d097957403b5fd26e10723..0a529f0e46f7329073d1778d932145b1681abac3 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.h +++ b/src/plugins/projectexplorer/miniprojecttargetselector.h @@ -132,6 +132,7 @@ private slots: void changeStartupProject(ProjectExplorer::Project *project); void updateAction(); void paintEvent(QPaintEvent *); + void mousePressEvent(QMouseEvent *); private: int indexFor(ProjectExplorer::Project *project) const;