summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornslu2-linux.adm@bkbits.net <nslu2-linux.adm@bkbits.net>2005-01-02 02:40:10 +0000
committernslu2-linux.adm@bkbits.net <nslu2-linux.adm@bkbits.net>2005-01-02 02:40:10 +0000
commit98af4fed2cd692b9e2a42ca77156c9729d6739bf (patch)
tree9a863d7874b3a0a2c1928bb32dcb2b388dd58ca8
parent63fad339e01d4b16105146c32a61f24460397126 (diff)
Merge bk://oe-devel.bkbits.net/openembedded
into bkbits.net:/repos/n/nslu2-linux/openembedded 2005/01/02 03:11:17+01:00 vanille.de!mickeyl Merge bk://oe-devel.bkbits.net/openembedded into allanon.vanille.de:/local/pkg/oe/packages 2005/01/02 03:11:06+01:00 vanille.de!mickeyl upgrade qte 2.3.9 snap to today and refresh the patches 2005/01/02 03:00:21+01:00 handhelds.org!CoreDump ipkg-collateral: Add tosa destinations BKrev: 41d75f0aGaBGLbG1pd8eoUFPe9eYXg
-rw-r--r--packages/ipkg/ipkg-collateral/tosa/dest (renamed from packages/qte/qte-for-opie_2.3.9-snapshot-20041221.bb)0
-rw-r--r--packages/qte/qte-2.3.9-snapshot/c700-hardware.patch139
-rw-r--r--packages/qte/qte-2.3.9-snapshot/kernel-keymap-tosa.patch81
-rw-r--r--packages/qte/qte-2.3.9-snapshot/opie.patch302
-rw-r--r--packages/qte/qte-for-opie_2.3.9-snapshot-20050101.bb0
5 files changed, 522 insertions, 0 deletions
diff --git a/packages/qte/qte-for-opie_2.3.9-snapshot-20041221.bb b/packages/ipkg/ipkg-collateral/tosa/dest
index e69de29bb2..e69de29bb2 100644
--- a/packages/qte/qte-for-opie_2.3.9-snapshot-20041221.bb
+++ b/packages/ipkg/ipkg-collateral/tosa/dest
diff --git a/packages/qte/qte-2.3.9-snapshot/c700-hardware.patch b/packages/qte/qte-2.3.9-snapshot/c700-hardware.patch
index e69de29bb2..b9a1011c13 100644
--- a/packages/qte/qte-2.3.9-snapshot/c700-hardware.patch
+++ b/packages/qte/qte-2.3.9-snapshot/c700-hardware.patch
@@ -0,0 +1,139 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20050101/src/kernel/qwindowsystem_qws.cpp~c700-hardware.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qwindowsystem_qws.cpp
+@@ -178,7 +178,7 @@
+ static QRect maxwindow_rect;
+ extern Q_EXPORT QRect qt_maxWindowRect;
+ static const char *defaultMouse =
+-#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_YOPY) || defined(QWS_CUSTOMTOUCHPANEL)
++#if defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_SLC700) || defined(QT_QWS_YOPY) || defined(QWS_CUSTOMTOUCHPANEL)
+ "TPanel"
+ #elif defined(QT_KEYPAD_MODE)
+ "None"
+@@ -3308,7 +3308,7 @@
+ void QWSServer::screenSaverSleep()
+ {
+ qt_screen->blank(TRUE);
+-#if !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX)
++#if !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX) && !defined(QT_QWS_SLC700)
+ d->screensavertimer->stop();
+ #else
+ if ( screensaverinterval ) {
+--- qt-2.3.9-snapshot-20050101/src/kernel/qwsmouse_qws.cpp~c700-hardware.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qwsmouse_qws.cpp
+@@ -95,6 +95,19 @@
+ #define QT_QWS_TP_PRESSURE_THRESHOLD 500
+ #define QT_QWS_TP_MOVE_LIMIT 50
+ #define QT_QWS_TP_JITTER_LIMIT 2
++#elif defined(QT_QWS_SLC700)
++#define QT_QWS_SLC700_RAW
++typedef struct {
++ unsigned short pressure;
++ unsigned short x;
++ unsigned short y;
++ unsigned short millisecs;
++} TS_EVENT;
++#define QT_QWS_TP_SAMPLE_SIZE 10
++#define QT_QWS_TP_MINIMUM_SAMPLES 4
++#define QT_QWS_TP_PRESSURE_THRESHOLD 500
++#define QT_QWS_TP_MOVE_LIMIT 50
++#define QT_QWS_TP_JITTER_LIMIT 2
+ #endif
+
+ #ifndef QT_QWS_TP_SAMPLE_SIZE
+@@ -600,7 +613,7 @@
+ sub[nsub++] = new QAutoMouseSubHandler_intellimouse(fd);
+ notify(fd);
+ }
+-#if !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX) && !defined(QT_QWS_K2)
++#if !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX) && !defined(QT_QWS_K2) && !defined(QT_QWS_SLC700)
+ char fn[] = "/dev/ttyS?";
+ for (int ch='0'; ch<='3'; ch++) {
+ fn[9] = ch;
+@@ -1493,11 +1506,11 @@
+
+
+ QTPanelHandlerPrivate::QTPanelHandlerPrivate( MouseProtocol, QString dev )
+- : samples(QT_QWS_TP_SAMPLE_SIZE), currSample(0), lastSample(0),
++ : samples(QT_QWS_TP_SAMPLE_SIZE), currSample(0), lastSample(0),
+ numSamples(0), skipCount(0)
+ {
+ Q_UNUSED(dev);
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2)
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700 )
+ #if defined(QT_QWS_IPAQ)
+ # ifdef QT_QWS_IPAQ_RAW
+ if ((mouseFD = open( "/dev/h3600_tsraw", O_RDONLY | O_NDELAY)) < 0) {
+@@ -1507,7 +1520,7 @@
+ qWarning( "Cannot open /dev/h3600_ts (%s)", strerror(errno));
+ return;
+ }
+-#elif defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2)
++#elif defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700)
+ //# ifdef QT_QWS_SL5XXX_TSRAW
+ # if 0
+ if ((mouseFD = open( "/dev/tsraw", O_RDONLY | O_NDELAY)) < 0) {
+@@ -1533,7 +1546,7 @@
+
+ QTPanelHandlerPrivate::~QTPanelHandlerPrivate()
+ {
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2)
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700)
+ if (mouseFD >= 0)
+ close(mouseFD);
+ #endif
+@@ -1541,7 +1554,7 @@
+
+ void QTPanelHandlerPrivate::readMouseData()
+ {
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2)
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700)
+ if(!qt_screen)
+ return;
+
+@@ -1560,7 +1573,7 @@
+ uchar *mb = mouseBuf+idx;
+ data = (TS_EVENT *) mb;
+ if(data->pressure >= QT_QWS_TP_PRESSURE_THRESHOLD) {
+-#ifdef QT_QWS_SL5XXX
++#if defined(QT_QWS_SL5XXX) || defined(QT_QWS_SLC700)
+ samples[currSample] = QPoint( 1000 - data->x, data->y );
+ #else
+ samples[currSample] = QPoint( data->x, data->y );
+@@ -1574,12 +1587,12 @@
+ mousePos = QPoint( 0, 0 );
+ QPoint totalMousePos = oldTotalMousePos;
+ totalMousePos += samples[currSample];
+- if(numSamples >= samples.count())
++ if(numSamples >= samples.count())
+ totalMousePos -= samples[lastSample];
+
+ mousePos = totalMousePos / (sampleCount - 1);
+
+-# if defined(QT_QWS_IPAQ_RAW) || defined(QT_QWS_SL5XXX_RAW)
++# if defined(QT_QWS_IPAQ_RAW) || defined(QT_QWS_SL5XXX_RAW) || defined(QT_QWS_SLC700_RAW)
+ mousePos = transform( mousePos );
+ # endif
+ if(!waspressed)
+@@ -1604,7 +1617,7 @@
+
+ // save recuring information
+ currSample++;
+- if (numSamples >= samples.count())
++ if (numSamples >= samples.count())
+ lastSample++;
+ oldTotalMousePos = totalMousePos;
+ } else {
+@@ -1963,7 +1976,7 @@
+ handler = new QTSLibHandler();
+ #elif defined(QT_QWS_YOPY)
+ handler = new QYopyTPanelHandlerPrivate(mouseProtocol,mouseDev);
+-#elif defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2)
++#elif defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700)
+ handler = new QTPanelHandlerPrivate(mouseProtocol,mouseDev);
+ #elif defined(QT_QWS_CASSIOPEIA)
+ handler = new QVrTPanelHandlerPrivate( mouseProtocol, mouseDev );
diff --git a/packages/qte/qte-2.3.9-snapshot/kernel-keymap-tosa.patch b/packages/qte/qte-2.3.9-snapshot/kernel-keymap-tosa.patch
index e69de29bb2..09cbcc4938 100644
--- a/packages/qte/qte-2.3.9-snapshot/kernel-keymap-tosa.patch
+++ b/packages/qte/qte-2.3.9-snapshot/kernel-keymap-tosa.patch
@@ -0,0 +1,81 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20050101/src/kernel/qkeyboard_qws.cpp~kernel-keymap-tosa.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qkeyboard_qws.cpp
+@@ -301,14 +301,24 @@
+ { Qt::Key_CapsLock, 0xffff , 0xffff , 0xffff }, // 3c 60
+ { Qt::Key_At, '@' , 's' , 'S'-64 }, // 3d
+ { Qt::Key_Question, '?' , '?' , 0xffff }, // 3e
++#ifdef QT_QWS_SL6000
++ { Qt::Key_Comma, ',' , ';' , 0xffff }, // 3f
++ { Qt::Key_Period, '.' , ':' , 0xffff }, // 40
++#else
+ { Qt::Key_Comma, ',' , ',' , 0xffff }, // 3f
+ { Qt::Key_Period, '.' , '.' , 0xffff }, // 40
++#endif
+ { Qt::Key_Tab, 9 , '\\' , 0xffff }, // 41
+ { Qt::Key_X, 0xffff , 'x' , 'X'-64 }, // 42
+ { Qt::Key_C, 0xffff , 'c' , 'C'-64 }, // 43
+ { Qt::Key_V, 0xffff , 'v' , 'V'-64 }, // 44
++#ifdef QT_QWS_SL6000
++ { Qt::Key_Slash, '/' , '?' , 0xffff }, // 45
++ { Qt::Key_Apostrophe, '\'' , '"' , 0xffff }, // 46 70
++#else
+ { Qt::Key_Slash, '/' , '/' , 0xffff }, // 45
+ { Qt::Key_Apostrophe, '\'' , '\'' , 0xffff }, // 46 70
++#endif
+ { Qt::Key_Semicolon, ';' , ';' , 0xffff }, // 47
+ { Qt::Key_QuoteDbl, '\"' , '\"' , 0xffff }, // 48
+ { Qt::Key_Colon, ':' , ':' , 0xffff }, // 49
+@@ -518,6 +528,32 @@
+ static const int keyMSize = sizeof(keyM)/sizeof(QWSServer::KeyMap)-1;
+ static QIntDict<QWSServer::KeyMap> *overrideMap = 0;
+
++#if defined(QT_QWS_SL6000)
++/* Translation table to obtain a 'legacy' keycode corresponding to
++ Fn+key on tosa
++ Other devices obviously send different keycodes while Fn is down, tosa sends
++ the same keys as usual bracketed by Fn-down/Fn-up.
++ This table is used while Fn is down to obtain the key-code the SL-5xxx would
++ send, so the rest of keyboard processing does not need to be adjusted. */
++static const uchar sl6kFnTrans[] = { 0x00,
++ 0x5e, 0x3a, 0x43, 0x4a, 0x2b, 0x4b, 0x4c, 0x4d, 0x30, 0x4e, 0x4f, 0x50,
++ // !, -, cpy, #, 3, $, %, _, 8, &, *, (,
++ 0x53, 0x3b, 0x31, 0x32, 0x29, 0x2c, 0x3d, 0x2d, 0x2f, 0x44, 0x2a, 0x42,
++ // =, +, 9, 0, 1, 4, @, 5, 7, pste, 2, cut,
++ // padding for keycodes which don't ever get directly sent on tosa
++ // except for y->6, ret->'>', BS->DEL
++ 0x2e, 0x00, 0x00, 0x57, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00,
++ // 6, _Z, shft, ret, F11, fn, BS?, F31, lght, cncl, lft, up,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ // dn, rght, OK, home, 1, 2, 3, 4, 5, 6, 7, 8,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ // 9, 0, UNK, UNK, UNK, UNK, UNK, UNK, UNK, -, +, caps,
++ // here are a few translatable codes again...
++ 0x00, 0x00, 0x54, 0x56, 0x3c, 0x00, 0x00, 0x00, 0x70, 0x55 };
++ // @, ?, ,, ., tab, cut, cpy, pste, /, '
++static const int sl6kFnSize = sizeof(sl6kFnTrans);
++#endif
++
+ /*!
+ Changes the mapping of the keyboard; adding the scancode to Unicode
+ mappings from \a map. The server takes over ownership of \a map
+@@ -828,6 +864,15 @@
+ int keypad = 0;
+
+ #ifndef QT_QWS_USE_KEYCODES
++#if defined(QT_QWS_SL6000)
++ qDebug("Key pressed: %x", code);
++ if (fn)
++ if (code < sl6kFnSize) {
++ code = sl6kFnTrans[code];
++ qDebug("Translated Fn: %x", code);
++ } else
++ qDebug("Untranslatable Fn: %x", code);
++#endif
+ #if defined(QT_QWS_IPAQ)
+ // map ipaq 'action' key (0x60, 0xe0)
+ if ((code & 0x7f) == 0x60) {
diff --git a/packages/qte/qte-2.3.9-snapshot/opie.patch b/packages/qte/qte-2.3.9-snapshot/opie.patch
index e69de29bb2..9a9df99aa3 100644
--- a/packages/qte/qte-2.3.9-snapshot/opie.patch
+++ b/packages/qte/qte-2.3.9-snapshot/opie.patch
@@ -0,0 +1,302 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.9-snapshot-20050101/src/kernel/qapplication.cpp~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qapplication.cpp
+@@ -35,6 +35,8 @@
+ **
+ **********************************************************************/
+
++#define QT_WEAK_SYMBOL __attribute__(( weak ))
++
+ #include "qobjectlist.h"
+ #include "qobjectdict.h"
+ #include "qapplication.h"
+@@ -937,11 +939,16 @@
+ #ifndef QT_NO_STYLE
+ void QApplication::setStyle( QStyle *style )
+ {
++ setStyle_NonWeak ( style );
++}
++
++void QApplication::setStyle_NonWeak( QStyle *style )
++{
+ QStyle* old = app_style;
+- app_style = style;
+
+ if ( startingUp() ) {
+ delete old;
++ app_style = style;
+ return;
+ }
+
+@@ -962,6 +969,8 @@
+ old->unPolish( qApp );
+ }
+
++ app_style = style;
++
+ // take care of possible palette requirements of certain gui
+ // styles. Do it before polishing the application since the style
+ // might call QApplication::setStyle() itself
+@@ -1188,13 +1197,30 @@
+ \sa QWidget::setPalette(), palette(), QStyle::polish()
+ */
+
+-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
++void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
++ const char* className )
++{
++ setPalette_NonWeak ( palette, informWidgets, className );
++}
++
++void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
+ const char* className )
+ {
+ QPalette pal = palette;
+ #ifndef QT_NO_STYLE
+- if ( !startingUp() )
++ if ( !startingUp() ) {
+ qApp->style().polish( pal ); // NB: non-const reference
++ if ( className ) {
++ // if we just polished a class specific palette (this normally
++ // only called by qt_fix_tooltips - see below), we better re-
++ // polish the global palette. Some styles like liquid can get
++ // confused, because they can not detect if the polished palette
++ // is the global one or only a class specific one.
++ // (liquid uses this palette to calculate blending pixmaps)
++ QPalette p = qApp-> palette ( );
++ qApp->style().polish ( p );
++ }
++ }
+ #endif
+ bool all = FALSE;
+ if ( !className ) {
+@@ -1279,6 +1305,12 @@
+ void QApplication::setFont( const QFont &font, bool informWidgets,
+ const char* className )
+ {
++ setFont_NonWeak ( font, informWidgets, className );
++}
++
++void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
++ const char* className )
++{
+ bool all = FALSE;
+ if ( !className ) {
+ if ( !app_font ) {
+--- qt-2.3.9-snapshot-20050101/src/kernel/qapplication.h~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qapplication.h
+@@ -61,6 +61,10 @@
+ class QSemaphore;
+ #endif
+
++#if !defined( QT_WEAK_SYMBOL )
++#define QT_WEAK_SYMBOL
++#endif
++
+ // REMOVE IN 3.0 (just here for moc source compatibility)
+ #define QNonBaseApplication QApplication
+
+@@ -85,7 +89,10 @@
+
+ #ifndef QT_NO_STYLE
+ static QStyle &style();
+- static void setStyle( QStyle* );
++ static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
++private:
++ static void setStyle_NonWeak( QStyle* );
++public:
+ #endif
+ #if 1 /* OBSOLETE */
+ enum ColorMode { NormalColors, CustomColors };
+@@ -106,11 +113,19 @@
+ #ifndef QT_NO_PALETTE
+ static QPalette palette( const QWidget* = 0 );
+ static void setPalette( const QPalette &, bool informWidgets=FALSE,
++ const char* className = 0 ) QT_WEAK_SYMBOL;
++private:
++ static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
+ const char* className = 0 );
++public:
+ #endif
+ static QFont font( const QWidget* = 0 );
+ static void setFont( const QFont &, bool informWidgets=FALSE,
++ const char* className = 0 ) QT_WEAK_SYMBOL;
++private:
++ static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
+ const char* className = 0 );
++public:
+ static QFontMetrics fontMetrics();
+
+ QWidget *mainWidget() const;
+@@ -207,7 +222,10 @@
+ void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
+ #ifndef QT_NO_QWS_MANAGER
+ static QWSDecoration &qwsDecoration();
+- static void qwsSetDecoration( QWSDecoration *);
++ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
++private:
++ static void qwsSetDecoration_NonWeak( QWSDecoration *);
++public:
+ #endif
+ #endif
+
+--- qt-2.3.9-snapshot-20050101/src/kernel/qapplication_qws.cpp~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qapplication_qws.cpp
+@@ -3076,6 +3076,11 @@
+ */
+ void QApplication::qwsSetDecoration( QWSDecoration *d )
+ {
++ qwsSetDecoration_NonWeak ( d );
++}
++
++void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
++{
+ if ( d ) {
+ delete qws_decoration;
+ qws_decoration = d;
+--- qt-2.3.9-snapshot-20050101/src/kernel/qfontdatabase.cpp~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qfontdatabase.cpp
+@@ -35,6 +35,8 @@
+ **
+ **********************************************************************/
+
++#define QT_WEAK_SYMBOL __attribute__(( weak ))
++
+ #include "qfontdatabase.h"
+
+ #ifndef QT_NO_FONTDATABASE
+@@ -2424,6 +2426,13 @@
+ const QString &style,
+ const QString &charSet )
+ {
++ return pointSizes_NonWeak ( family, style, charSet );
++}
++
++QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
++ const QString &style,
++ const QString &charSet )
++{
+ QString cs( charSet );
+ if ( charSet.isEmpty() ) {
+ QStringList lst = charSets( family );
+--- qt-2.3.9-snapshot-20050101/src/kernel/qfontdatabase.h~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qfontdatabase.h
+@@ -59,6 +59,10 @@
+ class QDiskFont;
+ #endif
+
++#if !defined( QT_WEAK_SYMBOL )
++#define QT_WEAK_SYMBOL
++#endif
++
+ class QFontDatabasePrivate;
+
+ class Q_EXPORT QFontDatabase
+@@ -67,9 +71,16 @@
+ QFontDatabase();
+
+ QStringList families( bool onlyForLocale = TRUE ) const;
++
++
+ QValueList<int> pointSizes( const QString &family,
+ const QString &style = QString::null,
+- const QString &charSet = QString::null );
++ const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
++private:
++ QValueList<int> pointSizes_NonWeak( const QString &family,
++ const QString &style,
++ const QString &charSet );
++public:
+ QStringList styles( const QString &family,
+ const QString &charSet = QString::null ) const;
+ QStringList charSets( const QString &familyName,
+--- qt-2.3.9-snapshot-20050101/src/kernel/qgfxraster_qws.cpp~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qgfxraster_qws.cpp
+@@ -4409,7 +4409,7 @@
+ setAlphaType(IgnoreAlpha);
+ if ( w <= 0 || h <= 0 || !ncliprect ) return;
+ GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1))
+-#ifdef QWS_EXPERIMENTAL_FASTPATH
++#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !!
+ // ### fix for 8bpp
+ // This seems to be reliable now, at least for 16bpp
+
+--- qt-2.3.9-snapshot-20050101/src/widgets/qcommonstyle.cpp~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/widgets/qcommonstyle.cpp
+@@ -572,7 +572,7 @@
+ bool enabled, bool active )
+ {
+ #ifndef QT_NO_MENUBAR
+-#ifndef QT_NO_STYLE_SGI
++#if 1 // #ifndef QT_NO_STYLE_SGI
+ if (draw_menu_bar_impl != 0) {
+ QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
+ (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
+--- qt-2.3.9-snapshot-20050101/src/widgets/qlistview.cpp~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/widgets/qlistview.cpp
+@@ -5051,9 +5051,9 @@
+ l = l->childItem ? l->childItem : l->siblingItem;
+
+ if ( l && l->height() )
+- s.setHeight( s.height() + 10 * l->height() );
+- else
+- s.setHeight( s.height() + 140 );
++ s.setHeight( s.height() + 4 /*10*/ * l->height() );
++ else // ^v much too big for handhelds
++ s.setHeight( s.height() + 30 /*140*/ );
+
+ if ( s.width() > s.height() * 3 )
+ s.setHeight( s.width() / 3 );
+--- qt-2.3.9-snapshot-20050101/src/kernel/qwindowsystem_qws.cpp~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/kernel/qwindowsystem_qws.cpp
+@@ -918,6 +918,18 @@
+ {
+ }
+
++static void catchSegvSignal( int )
++{
++#ifndef QT_NO_QWS_KEYBOARD
++ if ( qwsServer )
++ qwsServer->closeKeyboard();
++#endif
++ QWSServer::closedown();
++ fprintf(stderr, "Segmentation fault.\n");
++ exit(1);
++}
++
++
+ /*!
+ \class QWSServer qwindowsystem_qws.h
+ \brief Server-specific functionality in Qt/Embedded
+@@ -1043,6 +1055,7 @@
+ }
+
+ signal(SIGPIPE, ignoreSignal); //we get it when we read
++ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
+ #endif
+ focusw = 0;
+ mouseGrabber = 0;
+--- qt-2.3.9-snapshot-20050101/src/widgets/qtoolbutton.cpp~opie.patch
++++ qt-2.3.9-snapshot-20050101/src/widgets/qtoolbutton.cpp
+@@ -332,12 +332,12 @@
+ QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
+ w = pm.width();
+ h = pm.height();
+- if ( w < 32 )
+- w = 32;
+- if ( h < 32 )
+- h = 32;
++ if ( w < 24 )
++ w = 24;
++ if ( h < 24 )
++ h = 24;
+ } else {
+- w = h = 16;
++ w = h = 14;
+ QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
+ w = pm.width();
+ h = pm.height();
diff --git a/packages/qte/qte-for-opie_2.3.9-snapshot-20050101.bb b/packages/qte/qte-for-opie_2.3.9-snapshot-20050101.bb
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qte/qte-for-opie_2.3.9-snapshot-20050101.bb