[PATCH v2 0/3] screen crossing changes again
peter.hutterer at who-t.net
Thu Oct 13 17:36:08 PDT 2011
On Thu, Oct 13, 2011 at 01:58:01PM +0200, Michal Suchanek wrote:
> On 13 October 2011 03:39, Peter Hutterer <peter.hutterer at who-t.net> wrote:
> > Same thing as before, this time with the option of non-zero desktop origin.
> > untested for non-zero origins, I'm failing to actually configure this
> > anywhere.
> Non-zero origin works for me with positive origin (and a mouse).
Note that mice aren't affected by this patchset at all. They should behave
just as before. This set only affects absolute devices.
> Outputs that overflow to negative coordinates have garbage for content
> in the negative part and mouse cursor cannot be positioned in the
> negative part.
> In xfree86 ddx the negative part is simply not backed by anything, the
> fb origin is at 0,0.
> This can be different for rootless ddx like darwin, though.
> Attaching xrandr patch that allows placing outputs freely.
Tried it and while xrandr shows the nonzero output placements, the
ScreenRecs are still 0/0.
> There is one issue that is unaffected by this patch but may be worth
> mentioning. The mouse cursor is not visible along some screen edges.
> eg. try placing a screen right of another screen, maximize a window on
> the right screen, and then move the left screen 100px to the right.
> Now mouse cursor should be visible on the right screen as soon as it
> enters the window (which is now partly visible on the left screen as
> well) but you have to move it quite a bit into the window before it
right, this is caused by the screen switching code. the cursor won't be
moved on the other screen until it actually goes off-screen. you should
notice that as you go back the same way, the cursor will jump from the
screen edge to that offset that the screens overlap.
Probably fixable but not really a use-case I'll worry about for now.
> This might depend on cursor shape so for completeness I should add
> that I tested this with rxvt-unicode (urxvt).
> --- xrandr.c~ 2011-06-08 06:03:36.000000000 +0200
> +++ xrandr.c 2011-10-13 13:30:25.000000000 +0200
> @@ -1892,6 +1892,7 @@
> fatal ("loop in relative position specifications\n");
> +#if 0
> * Now normalize positions so the upper left corner of all outputs is at 0,0
> @@ -1916,6 +1917,8 @@
> output->changes |= changes_position;
> static void
> @@ -1979,7 +1982,6 @@
> if (fb_height < minHeight) fb_height = minHeight;
> static void
> disable_outputs (output_t *outputs)
More information about the xorg-devel