diff options
-rw-r--r-- | .SRCINFO | 2 | ||||
-rw-r--r-- | Fix-XineramaQueryScreens-for-reverse-prime.patch | 55 | ||||
-rw-r--r-- | PKGBUILD | 12 |
3 files changed, 63 insertions, 6 deletions
@@ -1,6 +1,6 @@ pkgbase = xorg-server-dev pkgver = 1.18.1 - pkgrel = 1 + pkgrel = 3 url = http://xorg.freedesktop.org arch = i686 arch = x86_64 diff --git a/Fix-XineramaQueryScreens-for-reverse-prime.patch b/Fix-XineramaQueryScreens-for-reverse-prime.patch new file mode 100644 index 000000000000..fe2c9479abf8 --- /dev/null +++ b/Fix-XineramaQueryScreens-for-reverse-prime.patch @@ -0,0 +1,55 @@ +diff --git a/randr/rrmonitor.c b/randr/rrmonitor.c +index c37dcf8..58041bb 100644 +--- a/randr/rrmonitor.c ++++ b/randr/rrmonitor.c +@@ -326,7 +326,7 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret, + RRMonitorSetFromClient(pScrPriv->monitors[list.client_primary], mon); + mon++; + } else if (list.server_primary >= 0) { +- RRMonitorSetFromServer(pScrPriv->crtcs[list.server_primary], mon); ++ RRMonitorSetFromServer(list.server_crtc[list.server_primary], mon); + mon++; + } + +@@ -354,8 +354,8 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret, + + /* And finish with the list of crtc-inspired monitors + */ +- for (c = 0; c < pScrPriv->numCrtcs; c++) { +- RRCrtcPtr crtc = pScrPriv->crtcs[c]; ++ for (c = 0; c < list.num_crtcs; c++) { ++ RRCrtcPtr crtc = list.server_crtc[c]; + if (c == list.server_primary && list.client_primary < 0) + continue; + +diff --git a/randr/rroutput.c b/randr/rroutput.c +index d12b9ba..2ba62fa 100644 +--- a/randr/rroutput.c ++++ b/randr/rroutput.c +@@ -543,6 +543,7 @@ ProcRRSetOutputPrimary(ClientPtr client) + WindowPtr pWin; + rrScrPrivPtr pScrPriv; + int ret; ++ ScreenPtr slave; + + REQUEST_SIZE_MATCH(xRRSetOutputPrimaryReq); + +@@ -565,7 +566,18 @@ ProcRRSetOutputPrimary(ClientPtr client) + + pScrPriv = rrGetScrPriv(pWin->drawable.pScreen); + if (pScrPriv) ++ { + RRSetPrimaryOutput(pWin->drawable.pScreen, pScrPriv, output); ++ ++ xorg_list_for_each_entry(slave, ++ &pWin->drawable.pScreen->output_slave_list, ++ output_head) { ++ rrScrPrivPtr pSlavePriv; ++ pSlavePriv = rrGetScrPriv(slave); ++ ++ RRSetPrimaryOutput(slave, pSlavePriv, output); ++ } ++ } + + return Success; + } @@ -4,7 +4,7 @@ _pkgbase=xorg-server pkgname=('xorg-server-dev' 'xorg-server-xephyr-dev' 'xorg-server-xdmx-dev' 'xorg-server-xvfb-dev' 'xorg-server-xnest-dev' 'xorg-server-xwayland-dev' 'xorg-server-common-dev' 'xorg-server-devel-dev') pkgver=1.18.1 # https://lists.x.org/archives/xorg-announce/2016-February/002674.html -pkgrel=1 +pkgrel=3 arch=('i686' 'x86_64') license=('custom') groups=('xorg') @@ -18,20 +18,22 @@ makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtra 'libxshmfence' 'libunwind') source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig} xvfb-run - xvfb-run.1) + xvfb-run.1 + Fix-XineramaQueryScreens-for-reverse-prime.patch) validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C' 'C383B778255613DFDB409D91DB221A6900000011' 'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3') sha256sums=('85ec56dbeb89a951295cdf4f39bf38e515f900d35e06d4a8081b114d1520789d' 'SKIP' 'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9' - '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776') + '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776' + 'afc334dfe1f1eb9e557ae01771b0f774c8fc578115e1698462ab670d1b0a213a') prepare() { cd "${_pkgbase}-${pkgver}" - msg2 "Starting autoreconf..." - autoreconf -fvi + msg2 "FS#47151" + patch -Np1 -i ../Fix-XineramaQueryScreens-for-reverse-prime.patch } build() { |