Bug 315314

Summary: Do not relayout windows immediately after closing one
Product: [Plasma] kwin Reporter: Franz Trischberger <franz.trischberger>
Component: effects-present-windowsAssignee: KWin default assignee <kwin-bugs-null>
Status: CONFIRMED ---    
Severity: wishlist CC: ae, bugseforuns, k2squared, nate
Priority: NOR Keywords: usability
Version: 4.10.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Franz Trischberger 2013-02-17 09:55:37 UTC
Before shutting down my PC I am usually using Present Windows to close all remaining windows.
It would solve some unneccessary brain cycles if the windows would just stay there for 1-2 secs before they rearrange. After the timeout relayouting should be postponed if the mouse is over a window. Timer should be started again if the mouse leaves the window.

Reproducible: Always
Comment 1 Martin Flöser 2013-02-17 10:13:36 UTC
I'm not sure whether your use case is actually a valid one for Present Windows. My personal suggestion would be that you use a KWin script instead to simply close all windows. You can easily bind that to a global shortcut.
Comment 2 Franz Trischberger 2013-02-17 10:27:16 UTC
Yeah, I thought of adding "of course this pplies to closing an arbitrary number of windows", but thought it might be clear.

Use case 1:
I updated a system component (directly from git/svn/...) that is used by several apps. I now want those apps to use the new library. Those apps are single-instance-only, so simply launching its command does not load the new version of the library but only open a new window in the existing process. (example: update to qt-webkit, now I want to close all rekonq/qupzilla windows).

Use case 2:
I simply want to close all dolphin instances, as I realize I always activate the wrong one ;)

Use case 3:
Simply clean up my workspace after a "hard" working session -> selectively close windows.

To make it clear:
I specifically use Present Windows in those cases, as it also shows me all minimized windows. Having to raise them (Alt+Tab etc.) prior to closing them is too time consuming ;)
I don't use a task bar, so using its context menu is no option, too ;)
Comment 3 Martin Flöser 2013-02-17 10:34:31 UTC
give a try to:
Alt+F2 ->
dolphin close <enter>

(yes it can only handle closing one window, but I would consider adding a closeall command to that runner).
Comment 4 Thomas Lübking 2013-02-17 10:41:39 UTC
(In reply to comment #3)
> give a try to:
> Alt+F2 ->
> dolphin close <enter>
> 
> (yes it can only handle closing one window, but I would consider adding a
> closeall command to that runner).

=)
You folks /do/ know pkill, do you ;-)

Different from the windowsystem, this will btw. actually end the process(es)
Comment 5 Franz Trischberger 2013-02-17 12:12:46 UTC
Not everyone is using plasma/krunner ;)
Yes, there is kill/killall/pkill/kquitapp/... But they have in common that they close EVERY instance/window/... If I want to keep >=1 windows of the app this is no solution.

Probably the most simple use case is: I toggle PW to switch windows, find the window I want to activate but also realize that there is a window I can close. Closing the window relayouts the view and I have to search for the window, again.

(I wanted to prevent saying the "G"-word - but that was one thing I liked in gnome-shell ;))

Maybe this also is an accessibility-issue, but there I don't have any experience (besides being slightly color blind :P).
Comment 6 Thomas Lübking 2013-02-17 12:48:16 UTC
I'd say to either re-layout after explicit closes or not re-layout them.

Adding a timer or re-layout the windows when you leave the next window just schedules your problem and makes it more confusing (because the action takes place w/o direct cause)

On whether to re-layout or not after closing windows, i've no opinion.
Comment 7 David Edmundson 2019-12-01 12:54:21 UTC
*** Bug 413598 has been marked as a duplicate of this bug. ***
Comment 8 Alexander Ewering 2019-12-01 13:11:04 UTC
Please either remove the relayout call (oneliner TM), or make it an option in System Settings (tenliner ;-)).

THANKS!
Comment 9 Marco Martin 2022-05-06 11:38:47 UTC
Git commit ae1937badc097a864ecfc62e79e7a3899c3be572 by Marco Martin.
Committed on 06/05/2022 at 11:37.
Pushed by mart into branch 'master'.

Remove completely present windows

since it has been replaced by windowview, and Desktop Grid
is ported as well, remove present windows which is effectively dead code
now
Related: bug 447001, bug 362844, bug 450487, bug 453426, bug 374481, bug 185381, bug 413342, bug 451150, bug 283333, bug 397500, bug 321236, bug 436572, bug 335782

M  +0    -1    src/effects/CMakeLists.txt
D  +0    -45   src/effects/presentwindows/CMakeLists.txt
D  +0    -17   src/effects/presentwindows/main.cpp
D  +0    -18   src/effects/presentwindows/main.qml
D  +0    -75   src/effects/presentwindows/metadata.json
D  +0    -2054 src/effects/presentwindows/presentwindows.cpp
D  +0    -343  src/effects/presentwindows/presentwindows.h
D  +0    -51   src/effects/presentwindows/presentwindows.kcfg
D  +0    -104  src/effects/presentwindows/presentwindows_config.cpp
D  +0    -46   src/effects/presentwindows/presentwindows_config.h
D  +0    -487  src/effects/presentwindows/presentwindows_config.ui
D  +0    -36   src/effects/presentwindows/presentwindows_proxy.cpp
D  +0    -35   src/effects/presentwindows/presentwindows_proxy.h
D  +0    -6    src/effects/presentwindows/presentwindowsconfig.kcfgc

https://invent.kde.org/plasma/kwin/commit/ae1937badc097a864ecfc62e79e7a3899c3be572
Comment 10 Nate Graham 2022-05-06 13:30:16 UTC
Removing the old code doesn't make wishlist requests invalid for the new version (which has the same name, so they are the same thing from the user's perspective); re-opening.