diff -bur3 src.orig/widgets/qmenubar.cpp src/widgets/qmenubar.cpp --- src.orig/widgets/qmenubar.cpp Mon Mar 18 02:11:27 2002 +++ src/widgets/qmenubar.cpp Sun Sep 1 19:31:09 2002 @@ -187,6 +187,7 @@ hasmouse = 0; defaultup = 0; toggleclose = 0; + openedbymove = 0; if ( parent ) { // filter parent events for resizing parent->installEventFilter( this ); @@ -906,7 +907,7 @@ return; mouseBtDn = TRUE; // mouse button down int item = itemAtPos( e->pos() ); - if ( item == actItem && popupvisible ) + if ( item == actItem && popupvisible && !openedbymove ) toggleclose = 1; setActiveItem( item, TRUE, FALSE ); } @@ -932,6 +933,7 @@ showMenu = FALSE; setActiveItem( item, showMenu, !hasMouseTracking() ); toggleclose = 0; + openedbymove = 0; } @@ -951,8 +953,10 @@ setActiveItem( item, FALSE, FALSE ); return; } - if ( item != actItem && item >= 0 && ( popupvisible || mouseBtDn ) ) + if ( item != actItem && item >= 0 && ( popupvisible || mouseBtDn ) ) { setActiveItem( item, TRUE, FALSE ); + openedbymove = 1; + } } diff -bur3 src.orig/widgets/qmenubar.h src/widgets/qmenubar.h --- src.orig/widgets/qmenubar.h Mon Mar 18 02:11:27 2002 +++ src/widgets/qmenubar.h Sun Sep 1 15:54:37 2002 @@ -139,6 +139,7 @@ uint hasmouse : 1; uint defaultup : 1; uint toggleclose : 1; + uint openedbymove : 1; friend class QPopupMenu;