Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
4.6.0
-
None
Description
This is an import of the old task 260685 for reference.
Was reported against S60 and is mentioned in tst_qwidget::activateWindow.
A bit of a strange bug. The activateWindow() call succeeds visually, e.g. the right window is shown, but activeWindow() still reports the old window as being active. In addition the window title is wrong.
This is the testcase from the reporter:
int main(int argc, char *argv[]) { MyApp a(argc, argv); QMainWindow* m1 = new QMainWindow(); QScrollArea* s1 = new QScrollArea(m1); m1->setCentralWidget(s1); m1->setGeometry(0, 100, 300, 500); s1->viewport()->setFocusPolicy(Qt::ClickFocus); QPalette pal = s1->palette(); pal.setColor(s1->backgroundRole(), Qt::blue); s1->setPalette(pal); a.processEvents(); m1->setVisible(true); m1->activateWindow(); a.processEvents(); QMainWindow* m2 = new QMainWindow(); QScrollArea* s2 = new QScrollArea(m2); m2->setCentralWidget(s2); m2->setGeometry(0, 100 , 300, 300); s2->viewport()->setFocusPolicy(Qt::ClickFocus); pal = s2->palette(); pal.setColor(s2->backgroundRole(), Qt::red); s2->setPalette(pal); a.processEvents(); m2->setVisible(true); m2->activateWindow(); a.processEvents(); m1->setVisible(true); m1->activateWindow(); a.processEvents(); if (m1->isActiveWindow() || s1->isActiveWindow() || s1->viewport()->isActiveWindow()) { m1->setWindowTitle("m1 is the active window"); } else { m1->setWindowTitle("m1 is not a active window"); if (a.activeWindow() == m2) { m2->setWindowTitle("Something wrong"); } } a.exec(); }