forked from pool/xorg-x11-server
- Add 50-extensions.conf
Disable the DGA extension by default (boo#947695). - Replaced u_confine_to_shape.diff by u_01-Improved-ConfineToShape.patch and u_02-DIX-ConfineTo-Don-t-bother-about-the-bounding-box-when-grabbing-a-shaped-window.patch. OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=612
This commit is contained in:
parent
f4c37c56fd
commit
33b0155469
9
50-extensions.conf
Normal file
9
50-extensions.conf
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Add extensions to be disabled. This may be needed as some
|
||||||
|
# extra modules may add extensions which cause the maximum
|
||||||
|
# number of extensions possible to be exceeded.
|
||||||
|
#
|
||||||
|
# SUSE Default: disable DGA.
|
||||||
|
|
||||||
|
Section "Extensions"
|
||||||
|
Option "XFree86-DGA" "Disable"
|
||||||
|
EndSection
|
109
u_01-Improved-ConfineToShape.patch
Normal file
109
u_01-Improved-ConfineToShape.patch
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
From: Keith Packard <keithp@keithp.com>
|
||||||
|
Date: Fri Oct 4 16:00:49 2013 -0700
|
||||||
|
Subject: [PATCH 1/2]Improved ConfineToShape
|
||||||
|
Patch-mainline: to be upstreamed
|
||||||
|
Git-commit: 0d0951624db7ae4686b362c7c6307f1ed46c8579
|
||||||
|
|
||||||
|
References: bnc#62146
|
||||||
|
Signed-off-by: Egbert Eich <eich@suse.com>
|
||||||
|
|
||||||
|
Find the box within the region which is closest to the point and move
|
||||||
|
there.
|
||||||
|
|
||||||
|
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||||
|
---
|
||||||
|
dix/events.c | 74 ++++++++++++++++++++++++++++++++++++++++--------------------
|
||||||
|
1 file changed, 50 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dix/events.c b/dix/events.c
|
||||||
|
index efaf91d..5244781 100644
|
||||||
|
--- a/dix/events.c
|
||||||
|
+++ b/dix/events.c
|
||||||
|
@@ -666,37 +666,63 @@ SetCriticalEvent(int event)
|
||||||
|
criticalEvents[event >> 3] |= 1 << (event & 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static uint32_t
|
||||||
|
+ConfineToBox(int x, int y, BoxPtr box, int *px, int *py)
|
||||||
|
+{
|
||||||
|
+ int dx, dy;
|
||||||
|
+
|
||||||
|
+ *px = x;
|
||||||
|
+ *py = y;
|
||||||
|
+
|
||||||
|
+ if (*px < box->x1)
|
||||||
|
+ *px = box->x1;
|
||||||
|
+ else if (*px >= box->x2)
|
||||||
|
+ *px = box->x2 - 1;
|
||||||
|
+
|
||||||
|
+ if (*py < box->y1)
|
||||||
|
+ *py = box->y1;
|
||||||
|
+ else if (*py >= box->y2)
|
||||||
|
+ *py = box->y2 - 1;
|
||||||
|
+
|
||||||
|
+ dx = x - *px;
|
||||||
|
+ if (dx < 0) dx = -dx;
|
||||||
|
+ if (dx > 32767)
|
||||||
|
+ dx = 32767;
|
||||||
|
+ dy = y - *py;
|
||||||
|
+ if (dy < 0) dy = -dy;
|
||||||
|
+ if (dy > 32767)
|
||||||
|
+ dy = 32767;
|
||||||
|
+
|
||||||
|
+ return (uint32_t) dx * (uint32_t) dx + (uint32_t) dy * (uint32_t) dy;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void
|
||||||
|
ConfineToShape(DeviceIntPtr pDev, RegionPtr shape, int *px, int *py)
|
||||||
|
{
|
||||||
|
- BoxRec box;
|
||||||
|
+ BoxPtr box;
|
||||||
|
+ int nbox;
|
||||||
|
int x = *px, y = *py;
|
||||||
|
- int incx = 1, incy = 1;
|
||||||
|
+ int bx, by;
|
||||||
|
+ uint32_t box_dist_2;
|
||||||
|
+ int best_x = 0, best_y = 0;
|
||||||
|
+ uint32_t best_dist_2 = 0;
|
||||||
|
+ int i;
|
||||||
|
|
||||||
|
- if (RegionContainsPoint(shape, x, y, &box))
|
||||||
|
+ if (RegionContainsPoint(shape, x, y, NULL))
|
||||||
|
return;
|
||||||
|
- box = *RegionExtents(shape);
|
||||||
|
- /* this is rather crude */
|
||||||
|
- do {
|
||||||
|
- x += incx;
|
||||||
|
- if (x >= box.x2) {
|
||||||
|
- incx = -1;
|
||||||
|
- x = *px - 1;
|
||||||
|
- }
|
||||||
|
- else if (x < box.x1) {
|
||||||
|
- incx = 1;
|
||||||
|
- x = *px;
|
||||||
|
- y += incy;
|
||||||
|
- if (y >= box.y2) {
|
||||||
|
- incy = -1;
|
||||||
|
- y = *py - 1;
|
||||||
|
- }
|
||||||
|
- else if (y < box.y1)
|
||||||
|
- return; /* should never get here! */
|
||||||
|
+ box = REGION_RECTS(shape);
|
||||||
|
+ nbox = REGION_NUM_RECTS(shape);
|
||||||
|
+ for (i = 0; i < nbox; i++) {
|
||||||
|
+ box_dist_2 = ConfineToBox(x, y, &box[i], &bx, &by);
|
||||||
|
+ if (i == 0 || box_dist_2 < best_dist_2) {
|
||||||
|
+ best_dist_2 = box_dist_2;
|
||||||
|
+ best_x = bx;
|
||||||
|
+ best_y = by;
|
||||||
|
}
|
||||||
|
- } while (!RegionContainsPoint(shape, x, y, &box));
|
||||||
|
- *px = x;
|
||||||
|
- *py = y;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ *px = best_x;
|
||||||
|
+ *py = best_y;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
@ -0,0 +1,148 @@
|
|||||||
|
From: Egbert Eich <eich@freedesktop.org>
|
||||||
|
Date: Fri Feb 7 09:19:45 2014 +0100
|
||||||
|
Subject: [PATCH 2/2]DIX/ConfineTo: Don't bother about the bounding box when grabbing a shaped window
|
||||||
|
Patch-mainline: to be upstreamed
|
||||||
|
Git-commit: 3f7cc03e47a35d05ffb3f7a6de521c41638b4c7a
|
||||||
|
|
||||||
|
References: bnc#62146
|
||||||
|
Signed-off-by: Egbert Eich <eich@suse.com>
|
||||||
|
|
||||||
|
Limiting the the cursor coordinates on the bounding box of a shaped
|
||||||
|
window before applying ConfineTo leads to strange cursor placement
|
||||||
|
when the pointer is located outside the vertial and horizontal
|
||||||
|
strip of this bounding box.
|
||||||
|
Ignoring the bounding box when a shape is set leads to the correct
|
||||||
|
behavior.
|
||||||
|
|
||||||
|
Signed-off-by: Egbert Eich <eich@freedesktop.org>
|
||||||
|
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||||
|
---
|
||||||
|
dix/events.c | 78 +++++++++++++++++++++++++++++++++---------------------------
|
||||||
|
1 file changed, 43 insertions(+), 35 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dix/events.c b/dix/events.c
|
||||||
|
index 5244781..8aa4af7 100644
|
||||||
|
--- a/dix/events.c
|
||||||
|
+++ b/dix/events.c
|
||||||
|
@@ -753,17 +753,19 @@ CheckPhysLimits(DeviceIntPtr pDev, CursorPtr cursor, Bool generateEvents,
|
||||||
|
(*pScreen->ConstrainCursor) (pDev, pScreen, &pSprite->physLimits);
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* constrain the pointer to those limits */
|
||||||
|
- if (new.x < pSprite->physLimits.x1)
|
||||||
|
- new.x = pSprite->physLimits.x1;
|
||||||
|
- else if (new.x >= pSprite->physLimits.x2)
|
||||||
|
- new.x = pSprite->physLimits.x2 - 1;
|
||||||
|
- if (new.y < pSprite->physLimits.y1)
|
||||||
|
- new.y = pSprite->physLimits.y1;
|
||||||
|
- else if (new.y >= pSprite->physLimits.y2)
|
||||||
|
- new.y = pSprite->physLimits.y2 - 1;
|
||||||
|
if (pSprite->hotShape)
|
||||||
|
ConfineToShape(pDev, pSprite->hotShape, &new.x, &new.y);
|
||||||
|
+ else {
|
||||||
|
+ /* constrain the pointer to those limits */
|
||||||
|
+ if (new.x < pSprite->physLimits.x1)
|
||||||
|
+ new.x = pSprite->physLimits.x1;
|
||||||
|
+ else if (new.x >= pSprite->physLimits.x2)
|
||||||
|
+ new.x = pSprite->physLimits.x2 - 1;
|
||||||
|
+ if (new.y < pSprite->physLimits.y1)
|
||||||
|
+ new.y = pSprite->physLimits.y1;
|
||||||
|
+ else if (new.y >= pSprite->physLimits.y2)
|
||||||
|
+ new.y = pSprite->physLimits.y2 - 1;
|
||||||
|
+ }
|
||||||
|
if ((
|
||||||
|
#ifdef PANORAMIX
|
||||||
|
noPanoramiXExtension &&
|
||||||
|
@@ -914,7 +916,8 @@ ConfineCursorToWindow(DeviceIntPtr pDev, WindowPtr pWin, Bool generateEvents,
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
- pSprite->hotLimits = *RegionExtents(&pWin->borderSize);
|
||||||
|
+// if (!wBoundingShape(pWin))
|
||||||
|
+ pSprite->hotLimits = *RegionExtents(&pWin->borderSize);
|
||||||
|
pSprite->hotShape = wBoundingShape(pWin) ? &pWin->borderSize
|
||||||
|
: NullRegion;
|
||||||
|
CheckPhysLimits(pDev, pSprite->current, generateEvents,
|
||||||
|
@@ -3039,17 +3042,19 @@ CheckMotion(DeviceEvent *ev, DeviceIntPtr pDev)
|
||||||
|
|
||||||
|
pSprite->hot.x = ev->root_x;
|
||||||
|
pSprite->hot.y = ev->root_y;
|
||||||
|
- if (pSprite->hot.x < pSprite->physLimits.x1)
|
||||||
|
- pSprite->hot.x = pSprite->physLimits.x1;
|
||||||
|
- else if (pSprite->hot.x >= pSprite->physLimits.x2)
|
||||||
|
- pSprite->hot.x = pSprite->physLimits.x2 - 1;
|
||||||
|
- if (pSprite->hot.y < pSprite->physLimits.y1)
|
||||||
|
- pSprite->hot.y = pSprite->physLimits.y1;
|
||||||
|
- else if (pSprite->hot.y >= pSprite->physLimits.y2)
|
||||||
|
- pSprite->hot.y = pSprite->physLimits.y2 - 1;
|
||||||
|
if (pSprite->hotShape)
|
||||||
|
ConfineToShape(pDev, pSprite->hotShape, &pSprite->hot.x,
|
||||||
|
&pSprite->hot.y);
|
||||||
|
+ else {
|
||||||
|
+ if (pSprite->hot.x < pSprite->physLimits.x1)
|
||||||
|
+ pSprite->hot.x = pSprite->physLimits.x1;
|
||||||
|
+ else if (pSprite->hot.x >= pSprite->physLimits.x2)
|
||||||
|
+ pSprite->hot.x = pSprite->physLimits.x2 - 1;
|
||||||
|
+ if (pSprite->hot.y < pSprite->physLimits.y1)
|
||||||
|
+ pSprite->hot.y = pSprite->physLimits.y1;
|
||||||
|
+ else if (pSprite->hot.y >= pSprite->physLimits.y2)
|
||||||
|
+ pSprite->hot.y = pSprite->physLimits.y2 - 1;
|
||||||
|
+ }
|
||||||
|
pSprite->hotPhys = pSprite->hot;
|
||||||
|
|
||||||
|
if ((pSprite->hotPhys.x != ev->root_x) ||
|
||||||
|
@@ -3516,17 +3521,18 @@ XineramaWarpPointer(ClientPtr client)
|
||||||
|
x += stuff->dstX;
|
||||||
|
y += stuff->dstY;
|
||||||
|
|
||||||
|
- if (x < pSprite->physLimits.x1)
|
||||||
|
- x = pSprite->physLimits.x1;
|
||||||
|
- else if (x >= pSprite->physLimits.x2)
|
||||||
|
- x = pSprite->physLimits.x2 - 1;
|
||||||
|
- if (y < pSprite->physLimits.y1)
|
||||||
|
- y = pSprite->physLimits.y1;
|
||||||
|
- else if (y >= pSprite->physLimits.y2)
|
||||||
|
- y = pSprite->physLimits.y2 - 1;
|
||||||
|
if (pSprite->hotShape)
|
||||||
|
ConfineToShape(PickPointer(client), pSprite->hotShape, &x, &y);
|
||||||
|
-
|
||||||
|
+ else {
|
||||||
|
+ if (x < pSprite->physLimits.x1)
|
||||||
|
+ x = pSprite->physLimits.x1;
|
||||||
|
+ else if (x >= pSprite->physLimits.x2)
|
||||||
|
+ x = pSprite->physLimits.x2 - 1;
|
||||||
|
+ if (y < pSprite->physLimits.y1)
|
||||||
|
+ y = pSprite->physLimits.y1;
|
||||||
|
+ else if (y >= pSprite->physLimits.y2)
|
||||||
|
+ y = pSprite->physLimits.y2 - 1;
|
||||||
|
+ }
|
||||||
|
XineramaSetCursorPosition(PickPointer(client), x, y, TRUE);
|
||||||
|
|
||||||
|
return Success;
|
||||||
|
@@ -3619,16 +3625,18 @@ ProcWarpPointer(ClientPtr client)
|
||||||
|
y = newScreen->height - 1;
|
||||||
|
|
||||||
|
if (newScreen == pSprite->hotPhys.pScreen) {
|
||||||
|
- if (x < pSprite->physLimits.x1)
|
||||||
|
- x = pSprite->physLimits.x1;
|
||||||
|
- else if (x >= pSprite->physLimits.x2)
|
||||||
|
- x = pSprite->physLimits.x2 - 1;
|
||||||
|
- if (y < pSprite->physLimits.y1)
|
||||||
|
- y = pSprite->physLimits.y1;
|
||||||
|
- else if (y >= pSprite->physLimits.y2)
|
||||||
|
- y = pSprite->physLimits.y2 - 1;
|
||||||
|
if (pSprite->hotShape)
|
||||||
|
ConfineToShape(dev, pSprite->hotShape, &x, &y);
|
||||||
|
+ else {
|
||||||
|
+ if (x < pSprite->physLimits.x1)
|
||||||
|
+ x = pSprite->physLimits.x1;
|
||||||
|
+ else if (x >= pSprite->physLimits.x2)
|
||||||
|
+ x = pSprite->physLimits.x2 - 1;
|
||||||
|
+ if (y < pSprite->physLimits.y1)
|
||||||
|
+ y = pSprite->physLimits.y1;
|
||||||
|
+ else if (y >= pSprite->physLimits.y2)
|
||||||
|
+ y = pSprite->physLimits.y2 - 1;
|
||||||
|
+ }
|
||||||
|
(*newScreen->SetCursorPosition) (dev, newScreen, x, y, TRUE);
|
||||||
|
}
|
||||||
|
else if (!PointerConfinedToScreen(dev)) {
|
@ -1,108 +0,0 @@
|
|||||||
From: Egbert Eich <eich@suse.de>
|
|
||||||
|
|
||||||
DIX/ConfineTo: Improve algorithm to jump to the nearest point inside
|
|
||||||
|
|
||||||
ConfineToShape does not work well: The cursor often times doesn't jump
|
|
||||||
to the point closest to the current cursor position outside the shape.
|
|
||||||
This patch fixes this.
|
|
||||||
|
|
||||||
--- dix/events.c.orig 2012-04-17 11:34:39.714915372 -0500
|
|
||||||
+++ dix/events.c 2012-04-17 11:26:54.735728478 -0500
|
|
||||||
@@ -671,32 +671,77 @@
|
|
||||||
{
|
|
||||||
BoxRec box;
|
|
||||||
int x = *px, y = *py;
|
|
||||||
- int incx = 1, incy = 1;
|
|
||||||
+ int nbox;
|
|
||||||
+ BoxPtr pbox;
|
|
||||||
+ int d, min = (~0U >> 1), dx2, dy2, x_r, y_r;
|
|
||||||
|
|
||||||
if (RegionContainsPoint(shape, x, y, &box))
|
|
||||||
return;
|
|
||||||
- box = *RegionExtents(shape);
|
|
||||||
- /* this is rather crude */
|
|
||||||
- do {
|
|
||||||
- x += incx;
|
|
||||||
- if (x >= box.x2) {
|
|
||||||
- incx = -1;
|
|
||||||
- x = *px - 1;
|
|
||||||
+
|
|
||||||
+ for (nbox = REGION_NUM_RECTS (shape),
|
|
||||||
+ pbox = REGION_RECTS(shape);
|
|
||||||
+ nbox--;
|
|
||||||
+ pbox++)
|
|
||||||
+ {
|
|
||||||
+ if (pbox->x1 < x && pbox->x2 > x) {
|
|
||||||
+ d = pbox->y1 - y;
|
|
||||||
+ if (d >= 0) {
|
|
||||||
+ d *= d;
|
|
||||||
+ if (d < min) {
|
|
||||||
+ *px = x;
|
|
||||||
+ *py = pbox->y1 + 1;
|
|
||||||
+ min = d;
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ d = pbox->y2 - y; d *= d;
|
|
||||||
+ if (d < min) {
|
|
||||||
+ *px = x;
|
|
||||||
+ *py = pbox->y2 - 1;
|
|
||||||
+ min = d;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
- else if (x < box.x1) {
|
|
||||||
- incx = 1;
|
|
||||||
- x = *px;
|
|
||||||
- y += incy;
|
|
||||||
- if (y >= box.y2) {
|
|
||||||
- incy = -1;
|
|
||||||
- y = *py - 1;
|
|
||||||
+ else if (pbox->y1 < y && pbox->y2 > y) {
|
|
||||||
+ d = pbox->x1 - x;
|
|
||||||
+ if (d >= 0) {
|
|
||||||
+ d *= d;
|
|
||||||
+ if (d < min) {
|
|
||||||
+ *px = pbox->x1 + 1;
|
|
||||||
+ *py = y;
|
|
||||||
+ min = d;
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ d = pbox->x2 - x; d *= d;
|
|
||||||
+ if (d < min) {
|
|
||||||
+ *px = pbox->x2 - 1;
|
|
||||||
+ *py = y;
|
|
||||||
+ min = d;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ dx2 = pbox->x1 - x;
|
|
||||||
+ if (dx2 >= 0) {
|
|
||||||
+ dx2 *= dx2;
|
|
||||||
+ x_r = pbox->x1 + 1;
|
|
||||||
+ } else {
|
|
||||||
+ dx2 = pbox->x2 - x; dx2 *= dx2;
|
|
||||||
+ x_r = pbox->x2 - 1;
|
|
||||||
+ }
|
|
||||||
+ dy2 = pbox->y1 - y;
|
|
||||||
+ if (dy2 >= 0) {
|
|
||||||
+ dy2 *= dy2;
|
|
||||||
+ y_r = pbox->y1 + 1;
|
|
||||||
+ } else {
|
|
||||||
+ dy2 = pbox->y2 - y; dy2 *= dy2;
|
|
||||||
+ y_r = pbox->y2 - 1;
|
|
||||||
+ }
|
|
||||||
+ if ((d = dx2 + dy2) < min) {
|
|
||||||
+ *px = x_r;
|
|
||||||
+ *py = y_r;
|
|
||||||
+ min = d;
|
|
||||||
}
|
|
||||||
- else if (y < box.y1)
|
|
||||||
- return; /* should never get here! */
|
|
||||||
}
|
|
||||||
- } while (!RegionContainsPoint(shape, x, y, &box));
|
|
||||||
- *px = x;
|
|
||||||
- *py = y;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
@ -1,3 +1,16 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 25 20:54:32 UTC 2016 - eich@suse.com
|
||||||
|
|
||||||
|
- Add 50-extensions.conf
|
||||||
|
Disable the DGA extension by default (boo#947695).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 25 20:53:20 UTC 2016 - eich@suse.com
|
||||||
|
|
||||||
|
- Replaced u_confine_to_shape.diff
|
||||||
|
by u_01-Improved-ConfineToShape.patch
|
||||||
|
and u_02-DIX-ConfineTo-Don-t-bother-about-the-bounding-box-when-grabbing-a-shaped-window.patch.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Feb 10 15:07:32 UTC 2016 - eich@suse.com
|
Wed Feb 10 15:07:32 UTC 2016 - eich@suse.com
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@ Source1: sysconfig.displaymanager.template
|
|||||||
Source2: README.updates
|
Source2: README.updates
|
||||||
Source3: xorgcfg.tar.bz2
|
Source3: xorgcfg.tar.bz2
|
||||||
Source4: xorg-backtrace
|
Source4: xorg-backtrace
|
||||||
|
Source5: 50-extensions.conf
|
||||||
# RPM Macros to be installed. The ABI Versions will be injected by configure.
|
# RPM Macros to be installed. The ABI Versions will be injected by configure.
|
||||||
Source90: xorg-x11-server.macros.in
|
Source90: xorg-x11-server.macros.in
|
||||||
# Source91 and Source99 are used to ensure proper ABI provides.
|
# Source91 and Source99 are used to ensure proper ABI provides.
|
||||||
@ -163,7 +164,8 @@ Patch3: N_driver-autoconfig.diff
|
|||||||
Patch4: N_fix_fglrx_screendepth_issue.patch
|
Patch4: N_fix_fglrx_screendepth_issue.patch
|
||||||
Patch6: N_fix-dpi-values.diff
|
Patch6: N_fix-dpi-values.diff
|
||||||
|
|
||||||
Patch101: u_confine_to_shape.diff
|
Patch100: u_01-Improved-ConfineToShape.patch
|
||||||
|
Patch101: u_02-DIX-ConfineTo-Don-t-bother-about-the-bounding-box-when-grabbing-a-shaped-window.patch
|
||||||
# PATCH-FIX-UPSTREAM u_x86emu-include-order.patch schwab@suse.de -- Change include order to avoid conflict with system header, remove duplicate definitions
|
# PATCH-FIX-UPSTREAM u_x86emu-include-order.patch schwab@suse.de -- Change include order to avoid conflict with system header, remove duplicate definitions
|
||||||
Patch102: u_x86emu-include-order.patch
|
Patch102: u_x86emu-include-order.patch
|
||||||
Patch104: u_xorg-server-xdmcp.patch
|
Patch104: u_xorg-server-xdmcp.patch
|
||||||
@ -268,7 +270,8 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
|||||||
%patch4 -p0
|
%patch4 -p0
|
||||||
%patch6 -p0
|
%patch6 -p0
|
||||||
#
|
#
|
||||||
%patch101
|
%patch100 -p1
|
||||||
|
%patch101 -p1
|
||||||
%patch102 -p1
|
%patch102 -p1
|
||||||
%patch104 -p1
|
%patch104 -p1
|
||||||
%patch106 -p1
|
%patch106 -p1
|
||||||
@ -376,6 +379,7 @@ rm -f %{buildroot}/%{_datadir}/X11/xorg.conf.d/10-evdev.conf
|
|||||||
%ifnarch s390 s390x
|
%ifnarch s390 s390x
|
||||||
mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
|
mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
|
||||||
cp %{buildroot}/%{_datadir}/X11/xorg.conf.d/10-quirks.conf %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
|
cp %{buildroot}/%{_datadir}/X11/xorg.conf.d/10-quirks.conf %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
|
||||||
|
%{__install} -m 644 %{S:5} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?suse_version} < 1315
|
%if 0%{?suse_version} < 1315
|
||||||
@ -459,6 +463,7 @@ fi
|
|||||||
%if 0%{?suse_version} > 1120
|
%if 0%{?suse_version} > 1120
|
||||||
%dir %{_sysconfdir}/X11/xorg.conf.d
|
%dir %{_sysconfdir}/X11/xorg.conf.d
|
||||||
%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/10-quirks.conf
|
%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/10-quirks.conf
|
||||||
|
%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/50-extensions.conf
|
||||||
%dir %{_datadir}/X11/xorg.conf.d
|
%dir %{_datadir}/X11/xorg.conf.d
|
||||||
%{_datadir}/X11/xorg.conf.d/10-*.conf
|
%{_datadir}/X11/xorg.conf.d/10-*.conf
|
||||||
%endif
|
%endif
|
||||||
|
Loading…
Reference in New Issue
Block a user