codehenry / xmonad

Automatically exported from code.google.com/p/xmonad
0 stars 0 forks source link

Magnifier focus loop #258

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. use magnifier Tall layout
2. open several windows
3. change focus with mouse back and forth between two windows

What is the expected output? What do you see instead?

Changing focus between two windows using the mouse with focus follows mouse
can cause the magnifier to enter a loop where it first focuses the upper
window and magnifies it, then focuses and magnifies the lower, etc. 

To cause the loop, the mouse has to be wiggled just right, to move more
quickly than xmonad can focus+magnify a window. There is a rectangle where
the magnified window overlaps the other window. Change focus by moving the
mouse pointer from the magnified window to the other window, and then
quickly move it back into the overlap rectangle. If this is done before
xmonad has finished reacting to the initial focus change, then it will get
into the loop.

To break out of the loop, move the mouse pointer outside the overlap rectangle.

I can reproduce it on demand here by just moving the pointer up and down
repeatedly as fast as possible using my laptop's touchpad. I have also
reproduced it by accident a few times. I can provide a video of the bug in
action if my description doesn't make sense.

What version of the product are you using? On what operating system?

0.8 debian unstable

Please provide any additional information below.

If this error is due to a module from XMonadContrib, please tag this issue
with 'Component-Contrib' below.

Component-Contrib

Original issue reported on code.google.com by joeyhe...@gmail.com on 6 Jan 2009 at 5:03

GoogleCodeExporter commented 8 years ago
This bug is quite difficult to reproduce but I've seen it.

Attached is an initial patch: it is way too slow since we query the pointer 
position
for being in that overlap region far too frequently. That may be the reason 
that I
cannot reproduce the bug when I'm using the attached patch, rather than it 
doing the
right thing (disabling the magnifier when it leads to an infinite loop)

Also, it seems that this patch disables the magnifier when it wouldn't otheriwse
trigger that bug.

A more successful attempt is probably going to listen for that particular 
sequence of
Events that happen when you get the looping happening.

Original comment by vogt.a...@gmail.com on 17 Oct 2009 at 6:44

Attachments:

GoogleCodeExporter commented 8 years ago

Original comment by byor...@gmail.com on 28 Nov 2009 at 2:00