Duing the the discussion about annoying page flipping during interactive move Thomas said that he switched it off because it was annoying and that the pages then felt like disconnected desktops.
This is precisely true and matches my own opinion. Fvwm should be better than that. The big, paged virtual desktop should not feel like disjoint desktops but like a big sketch block with plenty of space. => Make crossing the page boundaries easier and intuitive without being annoying. Situation: At the moment, interactive move with the mouse feels awkward. Pushing windows past the page edge often fails because the pointer hits the edge and cannot move further. It's annoying and uncomfortable. The "pointer hits page border" this is a real show stopper. -- This is the idea (working title "elastic paging"): 1. When an interactive move starts: - Replace the pointer with an invisible one. - Warp the pointer to the middle of the screen. There it can always be moved in all directions. - If the pointer gets too close to the page edges, warp it back to the middle of the screen. - At the end of the move, warp it back to the original position relative to the window. (- Maybe a fake cursor can be drawn at the original position so that the user does not get confused.) Note: Its then possible to move a window any distance without releasing the pointer. Note 2: As a side effect, windows can also be pushed over the desktop borders (maybe enforce that at least a couple of pixels remain visible). 2. Remove timed paging during interactive move completely (EdgeMoveDelay style) 3. Instead, when you push the original pointer position off page the viewport automatically starts scrolling to keep that position (the fake pointer) visible. Think of the current viewport position being connected with the original one with a rubber band: If you change you mind and move the window back towards its original position, the viewport also moves back, relaxing the rubber band. (When windows on other pages become visible, snapattraction automatically allows to snap to them.) 4. When the move ends, the window is placed and the viewport snaps back to a full page. It may be a bit tricky to choose the proper page automatically. It's easy if the window has completely moved to another page, but what if it's stuck between two or even four pages? 5. Visual feedback (optional) - If the viewport jumps use some kind of smooth animation. This may be especially important if the viewport snaps to a full page when the move ends. - See how the fake pointer can be implemented. - Add a new "activity" colour to window decorations. This colour may be used while a long running action affects a window (interactive move/resize etc.). - The "activity" colour could also be used when a window border hits the page edge during an interactive move. Say, if the window is already at the edge and you keep "pushing", that border uses the "activity" colour to indicate that something is happening. 6. Future - Also do something about interactive resize. - If elastic paging works nicely, it should become the default behaviour. To disable it, you have to turn it off explicitly - an empty config still has it on. Ciao Dominik ^_^ ^_^ -- Dominik Vogt