[xmonad] Re: Patch: fix focus when user is moving the mouse
Justin Bogner
mail at justinbogner.com
Wed Apr 9 17:45:51 EDT 2008
Spencer Janssen wrote:
> On Wed, Apr 09, 2008 at 02:13:39PM -0500, Klaus Weidner wrote:
>> Hello,
>>
>> the attached patch fixes an issue that had been bugging me - in
>> focus-follows-mouse mode, the input focus sometimes lagged behind the
>> mouse pointer, and as a result I was closing or typing into the wrong
>> window.
>>
>> Let me know in case there's a better way to approach this, I'm still new
>> to haskell and xmonad.
>>
>> I'll send a related patch to the UpdatePointer contrib module separately.
>>
>> -Klaus
>>
>> Remember if focus changes were caused by mouse actions or by key commands.
>>
>> If the user used the mouse to change window focus (moving into or clicking on a
>> window), this should be handled differently than focus changes due to keyboard
>> commands. Specifically, it's inappropriate to discard window enter/leave events
>> while the mouse is moving. This fixes the bug where a fast mouse motion across
>> multiple windows resulted in the wrong window keeping focus.
>>
>> It's also helpful information for contrib modules such as UpdatePointer - it's
>> supposed to move the mouse pointer only in response to keyboard actions, not if
>> the user was moving the mouse.
>
> First, a minor nitpick: if you want this patch to be applied, please change all
> identifiers to camelCase for consistency with the rest of xmonad.
>
> I foresee some problems with this patch. Consider the following sequence of
> events, starting from an empty workspace in the Tall layout:
>
> - increment nmaster to three
> - create three xterms
> - focus the second window with the mouse. At this time mouse_focus
> will be set to True
> - position the mouse such that it occupies the upper half of the second window
> - close the second window without using an xmonad keybinding (typing 'exit' in
> an xterm will suffice)
> - the windows will shuffle about, and xmonad will set focus to the last window
> as usual. Also, the first window will now be under the mouse pointer, and
> an entry event will be generated.
>
> In the old system, this entry event is removed and all is well. With your
> proposed changes the entry event will not be removed, and focus will be changed
> to the first window -- not good!
>
>
> Cheers,
> Spencer Janssen
Why isn't this good? the focus staying under the mouse seems more sane
than it going to an arbitrary window (the last).
_____
Justin Bogner
More information about the xmonad
mailing list