diff --git a/src/plugins/coreplugin/variablechooser.cpp b/src/plugins/coreplugin/variablechooser.cpp index 2799c13204a..9dc674f1e94 100644 --- a/src/plugins/coreplugin/variablechooser.cpp +++ b/src/plugins/coreplugin/variablechooser.cpp @@ -144,7 +144,16 @@ void VariableChooser::createIconButton() m_iconButton->setPixmap(QPixmap(QLatin1String(":/core/images/replace.png"))); m_iconButton->setToolTip(tr("Insert variable")); m_iconButton->hide(); - connect(m_iconButton, SIGNAL(clicked()), this, SLOT(show())); + connect(m_iconButton, SIGNAL(clicked()), this, SLOT(updatePositionAndShow())); +} + +void VariableChooser::updatePositionAndShow() +{ + if (parentWidget()) { + QPoint parentCenter = parentWidget()->mapToGlobal(parentWidget()->geometry().center()); + move(parentCenter.x() - width()/2, parentCenter.y() - height()/2); + } + show(); } void VariableChooser::handleItemActivated(QListWidgetItem *item) diff --git a/src/plugins/coreplugin/variablechooser.h b/src/plugins/coreplugin/variablechooser.h index a39feff58d6..456ba202d6c 100644 --- a/src/plugins/coreplugin/variablechooser.h +++ b/src/plugins/coreplugin/variablechooser.h @@ -64,6 +64,7 @@ private slots: void updateCurrentEditor(QWidget *old, QWidget *widget); void handleItemActivated(QListWidgetItem *item); void insertVariable(const QString &variable); + void updatePositionAndShow(); private: void createIconButton();