From bd197fbb77c5cfcf3b80951cb6f07f8579306084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Mon, 19 May 2014 09:16:34 +0200 Subject: [PATCH] Prevent flicker on MiniProjectTargetSelector show Reproducible on Mac OS X. Set position before changing the visible state. Change-Id: I8a7e73dae94ceb865ea8a7ef4cec4112220888de Reviewed-by: Daniel Teske Reviewed-by: Eike Ziller --- .../projectexplorer/miniprojecttargetselector.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index 269290f11fd..f8b9f9a12a9 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -852,7 +852,7 @@ void MiniProjectTargetSelector::doLayout(bool keepSize) int oldSummaryLabelY = m_summaryLabel->y(); - int kitAreaHeight = m_kitAreaWidget->isVisible() ? m_kitAreaWidget->sizeHint().height() : 0; + int kitAreaHeight = m_kitAreaWidget->isVisibleTo(this) ? m_kitAreaWidget->sizeHint().height() : 0; // 1. Calculate the summary label height int summaryLabelY = 1 + kitAreaHeight; @@ -959,11 +959,9 @@ void MiniProjectTargetSelector::doLayout(bool keepSize) setFixedSize(m_summaryLabel->width() + 1, heightWithoutKitArea + kitAreaHeight); //1 extra pixel for the border } - if (isVisibleTo(parentWidget())) { - QPoint moveTo = statusBar->mapToGlobal(QPoint(0,0)); - moveTo -= QPoint(0, height()); - move(moveTo); - } + QPoint moveTo = statusBar->mapToGlobal(QPoint(0,0)); + moveTo -= QPoint(0, height()); + move(moveTo); } void MiniProjectTargetSelector::setActiveTarget(ProjectExplorer::ProjectConfiguration *pc) @@ -1403,10 +1401,10 @@ void MiniProjectTargetSelector::activeRunConfigurationChanged(ProjectExplorer::R void MiniProjectTargetSelector::setVisible(bool visible) { + doLayout(false); QWidget::setVisible(visible); m_projectAction->setChecked(visible); if (visible) { - doLayout(false); if (!focusWidget() || !focusWidget()->isVisibleTo(this)) { // Does the second part actually work? if (m_projectListWidget->isVisibleTo(this)) m_projectListWidget->setFocus();