Bug 145147

Summary: Crash on consecutive 'Show Desktop' when toggling Yakuake inbetween
Product: [Plasma] kwin Reporter: Eike Hein <hein>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: dfedoruk, drahosh, elmerengue1902, james, nikido84, okar1, shuarmaegopez, trasgoescuro
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: kwin crash

Description Eike Hein 2007-05-07 17:10:04 UTC
Version:            (using KDE KDE 3.5.6)
Installed from:    Compiled From Sources
OS:                Linux

This is technically a continuation of bug #117677, which contains a similar backtrace in comment #7 and the same steps in #12, somewhat drowned out by other noise.

Yakuake is a drop-down terminal emulator based around Konsole's kpart, i.e. it has a KGlobalAccel tied to sliding its window in and out from the top of the screen. When it's opened, it sets it state to 'NET::KeepAbove | NET::Sticky | NET::SkipTaskbar | NET::SkipPager'. By default, it retracts its window when it detects a loss of focus, but it can be made to stick around via its settings.

Trying to reproduce this crash relies on having Yakuake configured not to retract on focus changes.

1. Open the usual mix of various applications and their windows.
2. Launch Yakuake, and slide open its window by using its global shortcut.
3. Invoke 'Show Desktop', hiding all application windows except Yakuake's (because "Show Desktop" is, iirc, implemented by calling minimize on the list of windows not skipping the pager).
4. Use Yakuake's global shortcut to slide out the window.
5. Invoke 'Show Desktop' again. kwin immediately crashes.

Backtrace follows.
Comment 1 Eike Hein 2007-05-07 17:10:48 UTC
Created attachment 20508 [details]
kwin crash
Comment 2 Lubos Lunak 2007-05-09 16:47:12 UTC
SVN commit 662906 by lunakl:

Remove deleted clients also from the list for 'show desktop'.
BUG: 145147



 M  +1 -0      workspace.cpp  


--- branches/KDE/3.5/kdebase/kwin/workspace.cpp #662905:662906
@@ -572,6 +572,7 @@
         focus_chain[ i ].remove( c );
     global_focus_chain.remove( c );
     attention_chain.remove( c );
+    showing_desktop_clients.remove( c );
     if( c->isTopMenu())
         removeTopMenu( c );
     Group* group = findGroup( c->window());
Comment 3 Lubos Lunak 2007-05-21 15:42:38 UTC
*** Bug 145673 has been marked as a duplicate of this bug. ***
Comment 4 Lubos Lunak 2007-06-01 15:50:30 UTC
*** Bug 143501 has been marked as a duplicate of this bug. ***
Comment 5 Lubos Lunak 2007-06-18 23:28:23 UTC
*** Bug 146907 has been marked as a duplicate of this bug. ***
Comment 6 Lubos Lunak 2007-07-12 16:42:24 UTC
*** Bug 147317 has been marked as a duplicate of this bug. ***
Comment 7 Tommi Tervo 2007-08-21 13:51:09 UTC
*** Bug 149048 has been marked as a duplicate of this bug. ***
Comment 8 Tommi Tervo 2007-09-05 10:09:01 UTC
*** Bug 149553 has been marked as a duplicate of this bug. ***
Comment 9 Tommi Tervo 2007-10-17 16:28:28 UTC
*** Bug 150936 has been marked as a duplicate of this bug. ***
Comment 10 Lubos Lunak 2007-12-18 11:45:19 UTC
*** Bug 153226 has been marked as a duplicate of this bug. ***