-rw-r--r-- | core/launcher/startmenu.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/core/launcher/startmenu.cpp b/core/launcher/startmenu.cpp index d9382d2..e663072 100644 --- a/core/launcher/startmenu.cpp +++ b/core/launcher/startmenu.cpp | |||
@@ -238,27 +238,32 @@ bool StartMenu::loadMenu( AppLnkSet *folder, QPopupMenu *menu ) | |||
238 | sepId = menu-> insertSeparator ( ); | 238 | sepId = menu-> insertSeparator ( ); |
239 | 239 | ||
240 | return result; | 240 | return result; |
241 | } | 241 | } |
242 | 242 | ||
243 | 243 | ||
244 | void StartMenu::launch() | 244 | void StartMenu::launch() |
245 | { | 245 | { |
246 | int y = mapToGlobal( QPoint() ).y() - launchMenu->sizeHint().height(); | 246 | int y = mapToGlobal( QPoint() ).y() - launchMenu->sizeHint().height(); |
247 | 247 | ||
248 | if ( launchMenu->isVisible() ) | 248 | if ( launchMenu->isVisible() ) |
249 | launchMenu->hide(); | 249 | launchMenu->hide(); |
250 | else | 250 | else { |
251 | QWidget *active = qApp->activeWindow(); | ||
252 | if ( active && active->isPopup() ) | ||
253 | active->close(); | ||
254 | |||
251 | launchMenu->popup( QPoint( 1, y ) ); | 255 | launchMenu->popup( QPoint( 1, y ) ); |
252 | } | 256 | } |
257 | } | ||
253 | 258 | ||
254 | const AppLnk* StartMenu::execToLink(const QString& appname) | 259 | const AppLnk* StartMenu::execToLink(const QString& appname) |
255 | { | 260 | { |
256 | const AppLnk* a = apps->findExec( appname ); | 261 | const AppLnk* a = apps->findExec( appname ); |
257 | return a; | 262 | return a; |
258 | } | 263 | } |
259 | 264 | ||
260 | void StartPopupMenu::keyPressEvent( QKeyEvent *e ) | 265 | void StartPopupMenu::keyPressEvent( QKeyEvent *e ) |
261 | { | 266 | { |
262 | if ( e->key() == Key_F33 || e->key() == Key_Space ) { | 267 | if ( e->key() == Key_F33 || e->key() == Key_Space ) { |
263 | // "OK" button, little hacky | 268 | // "OK" button, little hacky |
264 | QKeyEvent ke(QEvent::KeyPress, Key_Enter, 13, 0); | 269 | QKeyEvent ke(QEvent::KeyPress, Key_Enter, 13, 0); |