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

svn path=/trunk/KDE/kdebase/workspace/; revision=843596
icc-effect-5.14.5
Luboš Luňák 2008-08-07 11:51:20 +00:00
parent c24f6ad87b
commit 085abe58b2
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();