Don't lose the desktop submenu in Alt+F3.

svn path=/branches/KDE/4.1/kdebase/workspace/; revision=843598
This commit is contained in:
Luboš Luňák 2008-08-07 11:51:42 +00:00
parent 059f41f82a
commit 32e991c8d8
4 changed files with 12 additions and 9 deletions

View file

@ -205,8 +205,7 @@ void Workspace::setupCompositing()
scene->windowAdded( c );
foreach( Unmanaged* c, unmanaged )
scene->windowAdded( c );
delete popup; // force re-creation of the Alt+F3 popup (opacity option)
popup = NULL;
discardPopup(); // force re-creation of the Alt+F3 popup (opacity option)
#else
kDebug( 1212 ) << "Compositing was not available at compile time";
#endif
@ -251,8 +250,7 @@ void Workspace::finishCompositing()
i.setOpacity( static_cast< unsigned long >((*it)->opacity() * 0xffffffff ));
}
}
delete popup; // force re-creation of the Alt+F3 popup (opacity option)
popup = NULL;
discardPopup(); // force re-creation of the Alt+F3 popup (opacity option)
// discard all Deleted windows (#152914)
while( !deleted.isEmpty())
deleted.first()->discard( Allowed );

View file

@ -191,6 +191,13 @@ QMenu* Workspace::clientPopup()
return popup;
}
void Workspace::discardPopup()
{
delete popup;
popup = NULL;
desk_popup = NULL;
}
void Workspace::setPopupClientOpacity( QAction* action )
{
if( active_popup_client == NULL )
@ -359,10 +366,7 @@ void Workspace::readShortcuts()
kaction = qobject_cast<KAction*>( keys->action("Walk Through Windows (Reverse)") );
if ( kaction!=0 )
cutWalkThroughWindowsReverse = kaction->globalShortcut();
delete popup;
popup = NULL; // so that it's recreated next time
desk_popup = NULL;
discardPopup(); // so that it's recreated next time
}

View file

@ -459,7 +459,7 @@ Workspace::~Workspace()
(*it)->release();
delete tab_box;
delete popupinfo;
delete popup;
discardPopup();
XDeleteProperty(display(), rootWindow(), atoms->kwin_running);
writeWindowRules();

View file

@ -496,6 +496,7 @@ class Workspace : public QObject, public KDecorationDefines
void initShortcuts();
void readShortcuts();
void initDesktopPopup();
void discardPopup();
void setupWindowShortcut( Client* c );
void checkCursorPos();