Replies: 4 comments 23 replies
-
Not sure about multiple outputs, but the solution I like is:
If I'm understanding you right, I think this is subsumed by your "Visibility threshold" solution, by setting the threshold to 100%. I really don't like the view/focus freeze key option. It seems like accidental complexity, feels very inelegant to me. |
Beta Was this translation helpful? Give feedback.
-
For 1ii, maybe some delay before focus is switched? |
Beta Was this translation helpful? Give feedback.
-
I think a good way might be to mark partially visible windows for activation on any action. So when mousing over a fully visible window, it gets focused immediately. When hovering a only partially visible window this gets marked as tentatively focused, and the previously focused window looses that state. Then, when the user does any action that requires focus, like type a key that should be send to a window, or click or something like that, the windows does get focused, moved into full view, and what not. But when the user doesn't do anything other than moving the mouse, it stays only tentatively focused, and the user can move the mouse over that window without shifting the layout and reach a window beyond that on another output or move the mouse back. You could even say that any input action other than pointer movement would focus the window, even if it's just pressing the meta key to resize the window or something. This would solve 1 and 2, and probably most of 3. I don't know if this is enough of a "persistent state" to be technically viable, but I think it might be the best solution. |
Beta Was this translation helpful? Give feedback.
-
I've implemented the scroll amount threshold in the latest commits. Please give it a try and tell if it works as you expect and solves your issue. Example to ban all scrolling:
|
Beta Was this translation helpful? Give feedback.
-
Let's collect the focus-follows-mouse unwanted column movement scenarios and possible solutions to figure out what to do with it.
Possible solutions:
min(10%, 16 px)
visible for focus-follows-mouse to work. Solves 1i and 2 but not 3. Potentially breaks a workflow when people intentionally use struts to switch between maximized columns, but maybe the threshold can be tuned so that this is not a problem."Just don't scroll on focus change"—this cannot really work, scrolling the focused window into view is baked into lots of layout operations. It has to be some specific persistent state. For example, interactive resizing can freeze the scrolling because it is a specific state "is interactively resizing". A view freeze key can exist because it is a specific state "the view freeze key is currently pressed". If you want to suggest not scrolling on focus change, suggest what persistent state could be used to temporarily freeze the scrolling.
We don't have to solve everything at once, if a solution works for several of the cases and doesn't break any other behavior, we can still do it, and it will be an improvement.
Beta Was this translation helpful? Give feedback.
All reactions