https://bugs.kde.org/show_bug.cgi?id=489746
pallaswept <pallasw...@proton.me> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pallasw...@proton.me --- Comment #5 from pallaswept <pallasw...@proton.me> --- Problems: I think it's important to consider, what happens to a user who does NOT want their maximised window to stay maximised when they move it? As it is now, the state of the window is determined by the user's actions. How can that be true, if the maximised windows, stay maximised? If this request were implemented, how might a user drag a maximised window to somewhere else where they do NOT want it to remain maximised? Fixing problems seems easier, if we don't worry about creating new problems with our solution. Just ask Queensland about Cane Toads :D Not problems/user error/edge cases: As it is, this is mostly * working fine here. If I drag a maximized window, it restores it, If I drag it to a position where it should maximize it, it does, if I don't, it doesn't. If I drag a vertically maximized window horizontally, it stays vertically maximized UNLESS I drag it away from the vertical edges and then it restores it. Same if you swap horizontal for vertical. Pressing esc during the move cancels it (unless I'm moving by holding meta and then the system monitor opens, annoying). It seems pretty much good. The one part that makes this * mostly is that if I do this on multi-monitor, and the screen edges are not aligned, then it fails as so: When I drag a vertically-maximized window to a horizontally misaligned window, the window is un-maximised, or When I drag a horizontally-maximized window to a vertically misaligned window, the window is un-maximised, Because the window leaves the screen edge when it leaves the screen. And there's no mechanism to vertically- or horizontally-maximise a window while dragging, so I can't drop it in the same state it was when I dragged it. Of course, with fully maximised windows, that's not a problem, because there is a mechanism to drop it in the same state it was when I dragged it (drag it beyond the top edge). So, the only time there's really a limitation to this is vertically or horizontally maximized windows. >see Fitt's law; if I just want an unmaximized window at the top of the screen, >the target has infinite size if the automatic maximization feature is disabled, I can't reproduce this. If this feature is disabled, now we can drag the window beyond the edge of the screen, so the target is not infinitely large, it is infinitely small, because we have to hit that single row of pixels, the top of the screen, in order to leave the window there. Of course, there's snap to edges, which would help us hit that row, but you already can't hit that reliably and report accidentally dragging it too far, and turning the 'maximize on top edge' feature off does not prevent that, it just means that when you do drag it too far, rather than maximising, you just drag it off screen. Neither setting it on or off can compensate for dropping it in the wrong spot and give the result you wanted. You need to not drop it in the wrong spot. > but a smallish finite size if it's enabled. You can configure that size to be one that works for you, large enough to avoid accidents. > But with the new behavior, if I move the mouse somewhat vertically, the > window becomes vertically unmaximized, This is the same size defined here as "somewhat". You can make that "somewhat larger" :) if it's too small for you, which, if you're doing things by accident, it is. FWIW this is probably because the default sizes are absolute, in pixels, rather than relative, eg percent of screen, so pixel density has a direct relationship to the accuracy required of the user... as in, if you have a higher-res screen, the snap-to zones are effectively smaller. This is a very real problem with mixed density displays, because what is a comfortable/practical snap distance on one screen, can be uncomfortable/impractical on the other. I'm guessing that's why the default is quite small. Having it large enough for high-DPI displays renders it unusable for everyone else, so we all get the 'lowest common value' Watching your video after writing all that, snap distance is *definitely* your issue. Your snap-to distance is smaller than you are able to maintain accuracy. When you move "horizontally", you have a vertical error greater than the snap distance, so you are un-snapping it. It's doing exactly what you told it to do. If (like me!) you can't/don't want to be more accurate, just make snap distance bigger so you don't tell it to do that. You can rely on automatic snapping, or manual accuracy, but using neither and hoping for a good result is hoping for a mind-reading computer. Give it a few more years :D Possible Solutions: (probably need all of these to solve all the above) * Window snapping distance should be a relative measure, eg scaled screen percentage, not absolute, eg pixels. * Pressing esc while moving by holding meta, should not trigger the meta+esc keybind. Meta+click+drag+esc is not meta+esc. * There's an easy way to approach all of these issues, whether inaccurate movement, multi monitor, heterogeneous density, etc... Allow a keybind to control edge snapping/maximising during moves, just as there is one for tiling (shift+drop). Alt doesn't seem to do anything, if I'm not mistaken? How about that? * Related to the above, the astute observation that > The behavior thus depends on not just the start and end points of the > dragging, but the path the cursor takes between them Suggests that maybe this would work better if only the end point were considered. I feel like this is the trick, but going back to the start of this message - maybe there is a use-case for considering the entire path? I can't think of one. -- You are receiving this mail because: You are watching all bug changes.