Version: (using KDE Devel) Installed from: Compiled sources OS: Linux When you press the show desktop button and then start a new applications all the previously hidden windows are restored, and this is a real mess. Wishlist item Bug 60480 proposes such a solution, and you answer that the correct behaviour is to keep all the windows hidden (which is what happens in KDE 3.1 and is IMHO the best solution)...
Created attachment 4279 [details] A (maybe incomplete and erroneous) patch I attach something that pretends to be a patch, I hope the format is acceptable. To solve the issue, I have added a new slot to catch the event when a new window is created. By the way I fixed the following bug: when the desktop was hidden, you could not switch to another desktop. I don't know the architecture of NETWinInfo so I didn't add the controls which are done by slotWindowChanged. They are maybe needed, however the thing seems to work anyway.
*** Bug 75361 has been marked as a duplicate of this bug. ***
*** Bug 74361 has been marked as a duplicate of this bug. ***
*** Bug 76720 has been marked as a duplicate of this bug. ***
I tested Maciej's patch on Debian testing/unstable with KDE 3.2.1, and it works very well: the mess is gone :-)
*** Bug 79013 has been marked as a duplicate of this bug. ***
*** Bug 60480 has been marked as a duplicate of this bug. ***
*** Bug 79543 has been marked as a duplicate of this bug. ***
This seem to me one of those cases where a configuration option should be given. People coming from windows are expecting the bevaviour the patch proposes and there are also many users who'd like the button to work this way. OTOH there is also a lot of people who prefer the current way of handling the windows. So I believe that this should be possible to configure, in a menu that would appear right clicking the button or somewhere in the Control Center...
I suggest a new check box in the control center in the Desktop/Behaviour/General tab, below "Show tooltips". It could be labeled "Undo shown desktop on application start" (or the inverse, "Retain shown desktop on application start"). If I can be of any help to fix this bug, please let me know; its really annoying to always have to pull the sources and apply this patch for each new KDE version ;-)
I can't recreate the bug on KDE 3.2.3. Can anyone confirm this?
3.2.3 seems fixed here. Either my Debian build includes the patch, or it's fixed in the source themselves.
Same for me. I just upgraded to 3.2.3 from Debian unstable and the bug seems fixed.
Fine here, KDE 3.2.3 SuSE 8.2 RPMs.
So the main point has been corrected. The only thing left is that you cannot change desktop while the show desktop button is on, but maybe a new report should be opened for that? How is this in the CVS?
> The only thing left is that you cannot change desktop while the show > desktop button is on, but maybe a new report should be opened for that? How > is this in the CVS? It's already reported: Bug 78109: "show desktop" breaks desktop switching http://bugs.kde.org/show_bug.cgi?id=78109 J.A.
So marking as resolved.
Using KDE-3.5.2 and the bug seems to be here again. All hidden windows are restored :-(
Yup. I have given up. It seems like the KDE people like it this way. I still suggest an option in the control center... This bug should be REOPENED...
Ronny Standtke <Ronny.Standtke@gmx.net> [060514 12:09]: > ------- Additional Comments From Ronny.Standtke gmx net 2006-05-14 10:50 ------- > Using KDE-3.5.2 and the bug seems to be here again. All hidden windows are > restored :-( Mmmh, I do not even have this item anymore in my taskbar. How can I get it back? But fortunately I still know the shortcut (Ctrl+Alt+D) and this seems to work without problems. Sebastian
I use Win+M as shortcut, but the effect is exactly the same. To get the button back on the taskbar, right click on an empty space of kicker and click on "Add applet to panel..." The new cool applet chooser appears, somewhere towards the bottom you'll find the Show Desktop item.
Yes, you are correct, now I also see that the hold behaviour is back. Sebastian
SVN commit 546547 by lunakl: For people who don't see the difference between "show desktop" and "minimize all" add config option ShowDesktopIsMinimizeAll in group [Windows] in kwinrc. BUG: 67406 M +14 -2 kicker/kicker/core/showdesktop.cpp M +1 -0 kwin/kwin.kcfg M +1 -1 kwin/manage.cpp M +1 -0 kwin/options.cpp M +2 -0 kwin/options.h M +4 -1 kwin/workspace.cpp --- branches/KDE/3.5/kdebase/kicker/kicker/core/showdesktop.cpp #546546:546547 @@ -47,6 +47,7 @@ // KDE is running with another WM without the feature. NETRootInfo i( qt_xdisplay(), NET::Supported ); m_wmSupport = i.isSupported( NET::WM2ShowingDesktop ); + m_wmSupport = false; if( m_wmSupport ) { connect( Kicker::the()->kwinModule(), SIGNAL( showingDesktopChanged( bool )), @@ -74,8 +75,19 @@ if ((windowType == NET::Normal || windowType == NET::Unknown) && inf.mappingState() == NET::Visible) { - m_activeWindow = w; - showDesktop(false); + KConfig kwincfg( "kwinrc", true ); // see in kwin + kwincfg.setGroup( "Windows" ); + if( kwincfg.readBoolEntry( "ShowDesktopIsMinimizeAll", false )) + { + m_iconifiedList.clear(); + m_showingDesktop = false; + emit desktopShown(false); + } + else + { + m_activeWindow = w; + showDesktop(false); + } } } --- branches/KDE/3.5/kdebase/kwin/kwin.kcfg #546546:546547 @@ -59,6 +59,7 @@ <entry key="ElectricBorderDelay" type="Int" /> <entry key="IgnorePositionClasses" type="StringList" /> <entry key="KillPingTimeout" type="Int" /> + <entry key="ShowDesktopIsMinimizeAll" type="Bool" /> </group> <group name="WM" > <entry key="frame" type="Color" /> --- branches/KDE/3.5/kdebase/kwin/manage.cpp #546546:546547 @@ -465,7 +465,7 @@ break; } if( !belongs_to_desktop && workspace()->showingDesktop()) - workspace()->resetShowingDesktop( false ); + workspace()->resetShowingDesktop( options->showDesktopIsMinimizeAll ); if( isOnCurrentDesktop() && !isMapped && !allow ) workspace()->restackClientUnderActive( this ); --- branches/KDE/3.5/kdebase/kwin/options.cpp #546546:546547 @@ -152,6 +152,7 @@ killPingTimeout = config->readNumEntry( "KillPingTimeout", 5000 ); hideUtilityWindowsForInactive = config->readBoolEntry( "HideUtilityWindowsForInactive", true ); + showDesktopIsMinimizeAll = config->readBoolEntry( "ShowDesktopIsMinimizeAll", false ); // Mouse bindings config->setGroup( "MouseBindings"); --- branches/KDE/3.5/kdebase/kwin/options.h #546546:546547 @@ -182,6 +182,8 @@ * Animation speed (0 .. 10 ) */ int animateMinimizeSpeed; + + bool showDesktopIsMinimizeAll; /** * whether or not we roll over to the other edge when switching desktops past the edge --- branches/KDE/3.5/kdebase/kwin/workspace.cpp #546546:546547 @@ -2607,7 +2607,10 @@ // Unminimizing a window resets the state but keeps the windows hidden (except // the one that was unminimized). // A new window resets the state and shows the windows again, with the new window -// being active. +// being active. Due to popular demand (#67406) by people who apparently +// don't see a difference between "show desktop" and "minimize all", this is not +// true if "showDesktopIsMinimizeAll" is set in kwinrc. In such case showing +// a new window resets the state but doesn't show windows. void Workspace::resetShowingDesktop( bool keep_hidden ) { if( block_showing_desktop > 0 )
*** Bug 76151 has been marked as a duplicate of this bug. ***
there should be a way to set this option without recompiling KDE :(
*** Bug 108899 has been marked as a duplicate of this bug. ***
*** Bug 326753 has been marked as a duplicate of this bug. ***
*** Bug 299655 has been marked as a duplicate of this bug. ***
FYI, brainstorm on topic on forum.kde.org http://forum.kde.org/viewtopic.php?f=83&t=118281
*** Bug 336909 has been marked as a duplicate of this bug. ***
*** Bug 354156 has been marked as a duplicate of this bug. ***