summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/startmenu.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/launcher/startmenu.cpp b/core/launcher/startmenu.cpp
index 2871233..28c8b97 100644
--- a/core/launcher/startmenu.cpp
+++ b/core/launcher/startmenu.cpp
@@ -214,25 +214,33 @@ bool StartMenu::loadMenu( AppLnkSet *folder, QPopupMenu *menu )
if ( ltabs ) {
if ( !pmenu && lot )
pmenu = menu;
} else {
if ( !pmenu )
pmenu = menu;
else
pmenu = 0;
}
if ( pmenu ) {
QString t = app->name();
t.replace(QRegExp("&"),"&&"); // escape shortcut character
- pmenu->insertItem( app->pixmap(), t, app->id() );
+
+ int index = -1;
+
+ for ( index = 0; index < pmenu-> count ( ); index++ ) {
+ if ( pmenu-> text ( pmenu-> idAt ( index )). compare ( t ) > 0 )
+ break;
+ }
+
+ pmenu->insertItem( app->pixmap(), t, app->id(), index );
}
result=TRUE;
}
}
}
if ( sepId && ( menu-> idAt ( 0 ) == sepId )) { // no tabs entries
menu-> removeItem ( sepId );
sepId = 0;
}
if ( !menu-> count ( )) // if we don't do this QPopupMenu will insert a dummy Separator, which won't go away later
sepId = menu-> insertSeparator ( );