summaryrefslogtreecommitdiff
path: root/qt/qt-2.3.10.patch/tslib.patch
authormickeyl <mickeyl>2005-02-19 16:07:58 (UTC)
committer mickeyl <mickeyl>2005-02-19 16:07:58 (UTC)
commitb7bf9c7acdc010eb30bc246372efb0d1b394166a (patch) (side-by-side diff)
tree8dde116603cd8ddf439a881fc4a1d8f413af617b /qt/qt-2.3.10.patch/tslib.patch
parent298d0d244ca724405ca0651775ed61a22ce7a5ae (diff)
downloadopie-b7bf9c7acdc010eb30bc246372efb0d1b394166a.zip
opie-b7bf9c7acdc010eb30bc246372efb0d1b394166a.tar.gz
opie-b7bf9c7acdc010eb30bc246372efb0d1b394166a.tar.bz2
hello qte2.3.10 patches
bye bye old patches
Diffstat (limited to 'qt/qt-2.3.10.patch/tslib.patch') (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qt-2.3.10.patch/tslib.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/qt/qt-2.3.10.patch/tslib.patch b/qt/qt-2.3.10.patch/tslib.patch
new file mode 100644
index 0000000..47837d7
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/tslib.patch
@@ -0,0 +1,53 @@
+Index: qt-2.3.10/src/kernel/qwsmouse_qws.cpp
+===================================================================
+--- qt-2.3.10.orig/src/kernel/qwsmouse_qws.cpp 2005-02-16 00:53:53.090339898 +0100
++++ qt-2.3.10/src/kernel/qwsmouse_qws.cpp 2005-02-16 00:54:43.059069292 +0100
+@@ -1878,30 +1878,33 @@
+ */
+ void QTSLibHandlerPrivate::interpolateSample() {
+ #ifdef QT_QWS_TSLIB
+- static struct ts_sample samples[25];
+- int index = -1;
++#define TSLIB_MAX_SAMPLES 25
++ static struct ts_sample samples[TSLIB_MAX_SAMPLES];
++ int index = 0;
++ int read_samples = 0;
+ int ret;
+
+ do {
+- /* fill only the last sample again */
+- if ( index >= 25 )
+- index = 24;
+-
++ /* do not access negative arrays */
++ if ( index < 0 )
++ index = 0;
++
+ /* we're opened non-blocking */
+- if((ret= ts_read_raw(m_ts, &samples[index], 1 ) ) != 1 ) {
++ if((ret= ts_read_raw(m_ts, &samples[index], 1 ) ) != 1 )
+ /* no event yet, so try again */
+- if (ret==-1 ) {
+- index--;
++ if (ret==-1 )
+ continue;
+- }
+- }
+- }while (samples[index++].pressure != 0);
++
++ read_samples++;
++ index = (index+1)%TSLIB_MAX_SAMPLES;
++ }while (samples[index == 0 ? (TSLIB_MAX_SAMPLES-1) : index-1].pressure != 0);
+
+ /*
+- * index is maximal 25 and we at least one sample
++ * If we've wrapped around each sample is used otherwise
++ * we will use the index
+ */
+- if( index >= 25 )
+- index = 24;
++ index = read_samples >= TSLIB_MAX_SAMPLES ?
++ (TSLIB_MAX_SAMPLES-1 ) : index;
+ int x, y;
+
+ /*