Commit c6393ddce6fc9df8f52039089cc67699eb95aada

  • avatar
  • prossi
  • Fri Feb 05 10:46:23 CET 2010
Get rid of setFirstActionActive on mouse release in QMenu

The point in keeping this behaviour seems limited, and it is causing a
bug on touch-screens where there are no mouse moves.

Task-number: QTBUG-7907
Reviewed-by: ogoffart
Reviewed-by: Thierry
  
23022302 QAction *action = d->actionAt(e->pos());
23032303
23042304 if (action && action == d->currentAction) {
2305 if (action->menu())
2306 action->menu()->d_func()->setFirstActionActive();
2307 else {
2305 if (!action->menu()){
23082306#if defined(Q_WS_WIN)
23092307 //On Windows only context menus can be activated with the right button
23102308 if (e->button() == Qt::LeftButton || d->topCausedWidget() == 0)
  
104104 void setFixedWidth();
105105 void deleteActionInTriggered();
106106 void pushButtonPopulateOnAboutToShow();
107 void QTBUG7907_submenus_autoselect();
107108protected slots:
108109 void onActivated(QAction*);
109110 void onHighlighted(QAction*);
930930 QTest::mouseClick(&b, Qt::LeftButton, Qt::NoModifier, b.rect().center());
931931 QVERIFY(!lastMenu->geometry().intersects(b.geometry()));
932932
933}
934void tst_QMenu::QTBUG7907_submenus_autoselect()
935{
936 QMenu menu("Test Menu");
937 QMenu set1("Setting1");
938 QMenu set2("Setting2");
939 QMenu subset("Subsetting");
940 subset.addAction("Values");
941 set1.addMenu(&subset);
942 menu.addMenu(&set1);
943 menu.addMenu(&set2);
944 menu.show();
945 QTest::qWaitForWindowShown(&menu);
946 QTest::mouseClick(&menu, Qt::LeftButton, Qt::NoModifier, QPoint(5,5) );
947 QTest::qWait(500);
948 QVERIFY(!subset.isVisible());
933949}
934950
935951