aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/packages/rpm/el5/SOURCES/xserver-1.7.7-xkb-geom-copy.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/packages/rpm/el5/SOURCES/xserver-1.7.7-xkb-geom-copy.patch')
-rw-r--r--contrib/packages/rpm/el5/SOURCES/xserver-1.7.7-xkb-geom-copy.patch114
1 files changed, 0 insertions, 114 deletions
diff --git a/contrib/packages/rpm/el5/SOURCES/xserver-1.7.7-xkb-geom-copy.patch b/contrib/packages/rpm/el5/SOURCES/xserver-1.7.7-xkb-geom-copy.patch
deleted file mode 100644
index 5db9cec4..00000000
--- a/contrib/packages/rpm/el5/SOURCES/xserver-1.7.7-xkb-geom-copy.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 34fa79f3f914b6a739d101cd78b7dbda6eca4760 Mon Sep 17 00:00:00 2001
-From: Dirk Wallenstein <halsmit@t-online.de>
-Date: Sat, 17 Apr 2010 21:36:23 +0200
-Subject: [PATCH] xkb: Fix omissions in geometry initialization #27679
-
-_XkbCopyGeom did not copy all of the data from the source geometry. This
-resulted in failures when trying to obtain the keymap from a server
-where the default geometry has not been replaced by a custom
-configuration.
-
-Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
-Reviewed-by: Daniel Stone <daniel@fooishbar.org>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
----
- xkb/xkbUtils.c | 41 +++++++++++++++++++++++++++++++++++++++--
- 1 files changed, 39 insertions(+), 2 deletions(-)
-
-diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
-index 1abb5a8..fe093a4 100644
---- a/xkb/xkbUtils.c
-+++ b/xkb/xkbUtils.c
-@@ -1601,6 +1601,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
- else {
- dcolor->spec = xstrdup(scolor->spec);
- }
-+ dcolor->pixel = scolor->pixel;
- }
-
- dst->geom->num_colors = dst->geom->sz_colors;
-@@ -1672,6 +1673,8 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
-
- memcpy(doutline->points, soutline->points,
- soutline->num_points * sizeof(XkbPointRec));
-+
-+ doutline->corner_radius = soutline->corner_radius;
- }
-
- doutline->num_points = soutline->num_points;
-@@ -1681,6 +1684,36 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
-
- dshape->num_outlines = sshape->num_outlines;
- dshape->sz_outlines = sshape->num_outlines;
-+ dshape->name = sshape->name;
-+ dshape->bounds = sshape->bounds;
-+
-+ dshape->approx = NULL;
-+ if (sshape->approx && sshape->num_outlines > 0) {
-+
-+ const ptrdiff_t approx_idx =
-+ sshape->approx - sshape->outlines;
-+
-+ if (approx_idx < dshape->num_outlines) {
-+ dshape->approx = dshape->outlines + approx_idx;
-+ } else {
-+ LogMessage(X_WARNING, "XKB: approx outline "
-+ "index is out of range\n");
-+ }
-+ }
-+
-+ dshape->primary = NULL;
-+ if (sshape->primary && sshape->num_outlines > 0) {
-+
-+ const ptrdiff_t primary_idx =
-+ sshape->primary - sshape->outlines;
-+
-+ if (primary_idx < dshape->num_outlines) {
-+ dshape->primary = dshape->outlines + primary_idx;
-+ } else {
-+ LogMessage(X_WARNING, "XKB: primary outline "
-+ "index is out of range\n");
-+ }
-+ }
- }
-
- dst->geom->num_shapes = src->geom->num_shapes;
-@@ -1784,6 +1817,10 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
- }
- drow->num_keys = srow->num_keys;
- drow->sz_keys = srow->num_keys;
-+ drow->top = srow->top;
-+ drow->left = srow->left;
-+ drow->vertical = srow->vertical;
-+ drow->bounds = srow->bounds;
- }
-
- if (ssection->num_doodads) {
-@@ -1802,6 +1839,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
- ddoodad = dsection->doodads;
- k < ssection->num_doodads;
- k++, sdoodad++, ddoodad++) {
-+ memcpy(ddoodad , sdoodad, sizeof(XkbDoodadRec));
- if (sdoodad->any.type == XkbTextDoodad) {
- if (sdoodad->text.text)
- ddoodad->text.text =
-@@ -1815,7 +1853,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
- ddoodad->logo.logo_name =
- xstrdup(sdoodad->logo.logo_name);
- }
-- ddoodad->any.type = sdoodad->any.type;
- }
- dsection->overlays = NULL;
- dsection->sz_overlays = 0;
-@@ -1880,7 +1917,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
- ddoodad = dst->geom->doodads;
- i < src->geom->num_doodads;
- i++, sdoodad++, ddoodad++) {
-- ddoodad->any.type = sdoodad->any.type;
-+ memcpy(ddoodad , sdoodad, sizeof(XkbDoodadRec));
- if (sdoodad->any.type == XkbTextDoodad) {
- if (sdoodad->text.text)
- ddoodad->text.text = xstrdup(sdoodad->text.text);
---
-1.6.5.2
-