diff options
Diffstat (limited to 'packages/xorg-driver/xf86-input-tslib/01_fix-wrong-value-range-for-the-axises.diff')
-rw-r--r-- | packages/xorg-driver/xf86-input-tslib/01_fix-wrong-value-range-for-the-axises.diff | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/packages/xorg-driver/xf86-input-tslib/01_fix-wrong-value-range-for-the-axises.diff b/packages/xorg-driver/xf86-input-tslib/01_fix-wrong-value-range-for-the-axises.diff new file mode 100644 index 0000000000..b5407102b9 --- /dev/null +++ b/packages/xorg-driver/xf86-input-tslib/01_fix-wrong-value-range-for-the-axises.diff @@ -0,0 +1,47 @@ +--- xf86-input-tslib-0.0.5.orig/src/tslib.c ++++ xf86-input-tslib-0.0.5/src/tslib.c +@@ -183,7 +185,7 @@ + { + InputInfoPtr pInfo; + unsigned char map[MAXBUTTONS + 1]; +- int i; ++ int i, axiswidth, axisheight; + struct ts_priv *priv; + + ErrorF("%s\n", __FUNCTION__); +@@ -212,17 +226,29 @@ + return !Success; + } + ++ switch(priv->rotate) { ++ case TSLIB_ROTATE_CW: ++ case TSLIB_ROTATE_CCW: ++ axiswidth = priv->height; ++ axisheight = priv->width; ++ break; ++ default: ++ axiswidth = priv->width; ++ axisheight = priv->height; ++ break; ++ } ++ + InitValuatorAxisStruct(device, 0, 0, /* min val */ +- priv->width - 1, /* max val */ +- priv->width, /* resolution */ ++ axiswidth - 1, /* max val */ ++ axiswidth, /* resolution */ + 0, /* min_res */ +- priv->width); /* max_res */ ++ axiswidth); /* max_res */ + + InitValuatorAxisStruct(device, 1, 0, /* min val */ +- priv->height - 1,/* max val */ +- priv->height, /* resolution */ ++ axisheight - 1, /* max val */ ++ axisheight, /* resolution */ + 0, /* min_res */ +- priv->height); /* max_res */ ++ axisheight); /* max_res */ + + if (InitProximityClassDeviceStruct (device) == FALSE) { + ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n"); |