Xorg 1.7.5, Xinerama, and LeftOf screens

Dan Irwin rummymobile at gmail.com
Mon Mar 1 07:08:32 UTC 2010


I'm not sure what setup you have, but I can use tools inside gnome to
specify where each display sits (Preferences > Display). Intel
graphics, dell laptop, using inbuilt lcd panel and external 22 inch
lcd over vga. This is using Fedora 12. I imagine most setups don't yet
work this easily in linux.

Cheers,

Dan

On Mon, Mar 1, 2010 at 11:58 AM, DJ Delorie <dj at delorie.com> wrote:
>
> In case anyone else can benefit from this... I just spent 2-3 days
> hacking on the X server to get a screen to the left of the main screen
> working with Xinerama (no, I can't use Xrandr).  Here's the patch
> (yes, I'll mail it to xorg too).
>
> --- xorg-server-1.7.5/dix/events.c      2010-02-28 20:41:58.000000000 -0500
> +++ xorg-server-1.7.5.dj/dix/events.c   2010-02-28 20:56:52.000000000 -0500
> @@ -765,5 +765,5 @@
>     if (pSprite->hotShape)
>        ConfineToShape(pDev, pSprite->hotShape, &new.x, &new.y);
> -    if ((pScreen != pSprite->hotPhys.pScreen) ||
> +    if ((noPanoramiXExtension && (pScreen != pSprite->hotPhys.pScreen)) ||
>        (new.x != pSprite->hotPhys.x) || (new.y != pSprite->hotPhys.y))
>     {
> @@ -1164,6 +1164,6 @@
>        }
>  #endif
> -       pSprite->hotPhys.x = event->root_x;
> -       pSprite->hotPhys.y = event->root_y;
> +       pSprite->hotPhys.x = (signed short)event->root_x;
> +       pSprite->hotPhys.y = (signed short)event->root_y;
>        /* do motion compression, but not if from different devices */
>        if (tail &&
> @@ -1314,5 +1314,5 @@
>        syncEvents.replayDev = (DeviceIntPtr)NULL;
>
> -        w = XYToWindow(replayDev, event->root_x, event->root_y);
> +        w = XYToWindow(replayDev, (signed short)event->root_x, (signed short)event->root_y);
>        for (i = 0; i < replayDev->spriteInfo->sprite->spriteTraceGood; i++)
>        {
> @@ -2821,6 +2821,6 @@
>         }
>
> -        pSprite->hot.x = ev->root_x;
> -        pSprite->hot.y = ev->root_y;
> +        pSprite->hot.x = (signed short)ev->root_x;
> +        pSprite->hot.y = (signed short)ev->root_y;
>         if (pSprite->hot.x < pSprite->physLimits.x1)
>             pSprite->hot.x = pSprite->physLimits.x1;
> --
> users mailing list
> users at lists.fedoraproject.org
> To unsubscribe or change subscription options:
> https://admin.fedoraproject.org/mailman/listinfo/users
> Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
>


More information about the users mailing list