Constraining cursor to RandR crtcs

Peter Hutterer mailinglists at who-t.net
Mon Apr 2 19:12:18 PDT 2007


> The other alternative is to just confine the cursor to the visible
> region in this case -- make it 'impossible' to move from 1 to 2, and
> just block the cursor at 1. That seems better to me, and makes it much
> more like the existing root window where you simply cannot move  
> outside
> of the window at all.
>
> What would remain with this solution is a way to get between disjoint
> areas of the screen -- two CRTCs separated by a blank space would  
> become
> effectively isolated.

not necessarily. You could check the vector of the mouse move if  
there is another screen on this particular axis and connect them  
directly.

  ________  _________  _________
|        ||         ||         |
|       6||5_______4||3        |
|        |           |         |
|_______1|           |2________|


So 1 would jump to 2, but starting from 3 you would go 3-4-5-6.
We got a similar setup here with synergy and seems quite intuitive.

A more complex idea is to keep the movement vector while the cursor  
is effectively in the dead area and translate it to the visible area.  
The vector is discarded after some timeout and after some y axis  
threshold.
So 1 would jump to 5 but an immediate move back would make it jump  
back to 1.
Any active interaction (clicks) on 5, some timeout (e.g. a second) or  
a above-threshold y axis move would void the translation vector and a  
movement back to the screen would result in the 5-6 path. Admittedly  
this requires a lot of parameter fine-tuning and should prob. be  
client sided.

Cheers,
   Peter

--
Multi-Pointer X Server
http://wearables.unisa.edu.au/mpx





More information about the xorg mailing list