Description of problem: When using sloppy focus (or the UI-less strict focus setting), focus is not updated when the mouse is moved while doing workspace switching or after the workspace switching is complete. This leads to the focus being disconnected from the mouse position, which requires moving the mouse out of and back in to the window to focus the window. (This has been a moderate annoyance for ages, but I just realized what the exact steps to reproduce were.) Version-Release number of selected component (if applicable): metacity-2.4.34-3 How reproducible: every time Steps to Reproduce: 1. Go to a workspace that has a workspace to its right that has two non-overlapping windows. Call them A and B. 2. Position the mouse so that when you move into the workspace to the right, the pointer will be in window B. 2. Hold down Ctrl and Alt, and press the right arrow, but *do not lift control and alt*. 3. Move the mouse pointer from window B to window A. 4. Release Ctrl and Alt. Actual results: Window B has focus. Expected results: Window A has focus. Additional info: This is reproducable with both strict-focus and sloppy-focus settings: gconftool-2 --set /apps/metacity/general/focus_mode mouse --type=string gconftool-2 --set /apps/metacity/general/focus_mode sloppy --type=string
Created attachment 92402 [details] patch This fixes the problem for me. Alternatively, one could probably change the no-op case in meta_workspace_activate, but I don't feel like going through all the callers to make sure that makes sense for all of them. Someone who knows the code better could probably do that easily.
(Although I admit I don't understand, for the key release case, why we'd ever not be on the workspace in question already.)
Moved to http://bugzilla.gnome.org/show_bug.cgi?id=123803