The goal is to be able to drag an icon from a background window without immediately raising that window and obscuring the drop target window when using the click-to-focus mode. This is a barebones description of what needs to happen. It assumes familiarity with code, protocols, etc. as needed.
↫ Quod Video
The articles describes how to get there using both X and Wayland, and it’s clear there’s still quite a bit of work to do. At least on my KDE Wayland setups, the way it works now is that when I click to drag an icon from a lower Dolphin window to a higher one, it brings the lower window forward, but then, when I hover for a bit over the other window, it brings it back up. Of course, this only works if the destination window remains at least partially visible, which might not always be the case.
For usability’s sake, there needs to be an option to start a drag operation from one window to the next without altering the Z-order.
For KDE KWin I have opened this enhancement issue.
Or do like in Windows : drag to the target application button in the task bar to raise its window upfront, then continue dragging toward it. The window overlapping and hiding has always been a big problem imho, that’s why there are so many window managers out there to try to solve this long lasting issue.
The Amiga way of doing it always appealed to me, and I still miss having that approach on other platforms. Clicking a window doesn’t change the Z-order at all, so you can have a smaller window open in front of a larger one and happily work in both. Double-clicking a window will bring it to the front, so the option is always there.
My recollection of the Amiga was that you had to click on the z-order button in the titlebar to move it forwards or backwards. There was also a “ClickToFront” commodity that you could enable which would cause the window to automatically come to the foreground when clicked.
I believe with X11 it entirely depends on the window manager you’re using, some are click to front, some are focus follows pointer, etc, so its a window manager deficiency rather than X11 itself.