diff options
author | Robert Xu <robxu9@gmail.com> | 2011-11-19 19:30:53 -0500 |
---|---|---|
committer | Robert Xu <robxu9@gmail.com> | 2011-11-19 19:30:53 -0500 |
commit | 27c9e783c6283f8916ebee3a23c6d1ba909a5126 (patch) | |
tree | b2e83e72bb13db04a79c6266998a84d11622549b /opensuse/core/qt3 | |
parent | d23dfe93da17397db5e6f8bdf74fedf769379bdb (diff) | |
download | tde-packaging-27c9e783c6283f8916ebee3a23c6d1ba909a5126.tar.gz tde-packaging-27c9e783c6283f8916ebee3a23c6d1ba909a5126.zip |
Thanks to Andrea Cascio for getting Qt3 3.3.8d building!
Diffstat (limited to 'opensuse/core/qt3')
50 files changed, 128 insertions, 2808 deletions
diff --git a/opensuse/core/qt3/0005-qpixmap_mitshm.patch b/opensuse/core/qt3/0005-qpixmap_mitshm.patch deleted file mode 100644 index e6683f726..000000000 --- a/opensuse/core/qt3/0005-qpixmap_mitshm.patch +++ /dev/null @@ -1,569 +0,0 @@ -qt-bugs@ issue : 11790 (part of) -applied: no -author: Lubos Lunak <l.lunak@kde.org> - -NOTE: Needs #define QT_MITSHM in the matching qplatformdefs.h file. This - patch does so only for linux-g++ and linux-g++-distcc platforms. - -MITSHM extension support for QPixmap<->QImage conversions. - -Hello, - - the review and apply the attached patches that improve performance of -QImage->QPixmap conversions. They should be applied in order -'mitshm','more_local' and 'fast', but they're independent from each other -(well, besides merging problems). - - Mitshm patch adds MITSHM extension support for both -QPixmap::convertFromImage() and QPixmap::convertToImage(). I've noticed there -was some MITSHM support already, turned off by default, but it was used only -for QPixmap::xForm() , and it used shared pixmaps (and I'd bet nobody uses -it). My patch adds shared ximages support for faster pixmap<->image -conversions. Since I don't understand the xForm() code much, and I didn't -want to do anything with it, I added three #define's: - - QT_MITSHM generally enabling MITSHM support, which should be set in -qplatformsdefs.h (or wherever you setup platform specific stuff), it can be -enabled at least on Linux - - QT_MITSHM_CONVERSIONS - this is for my new code - - QT_MITSHM_XFORM - this is for the xForm() code - There's one more #define, QT_MITSHM_RMID_IGNORES_REFCOUNT. Glibc -documentation of shmctl( ... IPC_RMID ) quite clearly says that the memory -segment is freed only after the refcount increased by shmat() and decreased -by shmdt() is 0. However, at least according to -http://bugs.kde.org/show_bug.cgi?id=27517 , this doesn't happen on other -platforms for some strange reason. Such platforms should have this #define if -you ever consider supporting MITSHM on them. - - The lower limit for using MITSHM for the image is about 8KiB -(width*height*depth > 100*100*32 ). Also, BestOptim in such case doesn't keep -the ximage, as the shared ximage is always freed before the function returns -(I don't know if it's worth copying it). - - The second patch ('more_local'), in short, does nothing. Besides improving -performance by about 10% by making variables more "local", making few of them -const, and also making some of them unsigned (this help gcc for some reason). - - The last one, 'fast', moves some if's out of the loops, and handles some most -common case specially (15bpp, 16bpp and 32bpp ximage depths). 32bpp case, if -the endianess matches, is simply uses memcpy(), for the 15/16bpp depth, -variables are replaced directly by matching values, statements are a bit -reordered and merged when suitable, and again, in case endianess matches, -pixels are written simply as Q_INT16. Most probably it would also help to -process two pixels at once and write them as Q_INT32, but I didn't want to -complicate the code too much (later >;) ). - - The last snippet of 'fast' handles case when xi->bytes_per_line is not equal -to width for 8bpp ximage. I'm not actually sure if that can ever happen, but -since I've already written it *shrug*. - - The 'more_local' and 'fast' patches change only convertFromImage(), as I -don't think convertToImage() is that performance critical (but it's as -unoptimized as convertFromImage() was). - - Maybe some numbers. The difference is of course mainly visible with larger -pixmaps. The two optimizations alone reduce the time to 50% for 32bpp, to 70% -for 16bpp. The MITSHM support, when other patches are already applied too, -for 32bpp images saves about 33%. Together, the total time is reduced to -about 40% for 32bpp. Imlib probably still beats that, but at least this -obsoletes KPixmapIO. - - ---- src/kernel/qpixmap_x11.cpp -+++ src/kernel/qpixmap_x11.cpp -@@ -37,7 +37,19 @@ - - // NOT REVISED - -+#include "qplatformdefs.h" -+ -+#if defined(Q_OS_WIN32) && defined(QT_MITSHM) -+#undef QT_MITSHM -+#endif -+ -+#ifdef QT_MITSHM -+ -+// Use the MIT Shared Memory extension for pixmap<->image conversions -+#define QT_MITSHM_CONVERSIONS -+ - // Uncomment the next line to enable the MIT Shared Memory extension -+// for QPixmap::xForm() - // - // WARNING: This has some problems: - // -@@ -45,14 +57,13 @@ - // 2. Qt does not handle the ShmCompletion message, so you will - // get strange effects if you xForm() repeatedly. - // --// #define QT_MITSHM -+// #define QT_MITSHM_XFORM - --#if defined(Q_OS_WIN32) && defined(QT_MITSHM) --#undef QT_MITSHM -+#else -+#undef QT_MITSHM_CONVERSIONS -+#undef QT_MITSHM_XFORM - #endif - --#include "qplatformdefs.h" -- - #include "qbitmap.h" - #include "qpaintdevicemetrics.h" - #include "qimage.h" -@@ -91,7 +102,7 @@ inline static void qSafeXDestroyImage( X - MIT Shared Memory Extension support: makes xForm noticeably (~20%) faster. - *****************************************************************************/ - --#if defined(QT_MITSHM) -+#if defined(QT_MITSHM_XFORM) - - static bool xshminit = FALSE; - static XShmSegmentInfo xshminfo; -@@ -173,8 +184,100 @@ static bool qt_create_mitshm_buffer( con - // return FALSE; - // } - --#endif // QT_MITSHM -+#endif // QT_MITSHM_XFORM -+ -+#ifdef QT_MITSHM_CONVERSIONS -+ -+static bool qt_mitshm_error = false; -+static int qt_mitshm_errorhandler( Display*, XErrorEvent* ) -+{ -+ qt_mitshm_error = true; -+ return 0; -+} -+ -+static XImage* qt_XShmCreateImage( Display* dpy, Visual* visual, unsigned int depth, -+ int format, int /*offset*/, char* /*data*/, unsigned int width, unsigned int height, -+ int /*bitmap_pad*/, int /*bytes_per_line*/, XShmSegmentInfo* shminfo ) -+{ -+ if( width * height * depth < 100*100*32 ) -+ return NULL; -+ static int shm_inited = -1; -+ if( shm_inited == -1 ) { -+ if( XShmQueryExtension( dpy )) -+ shm_inited = 1; -+ else -+ shm_inited = 0; -+ } -+ if( shm_inited == 0 ) -+ return NULL; -+ XImage* xi = XShmCreateImage( dpy, visual, depth, format, NULL, shminfo, width, -+ height ); -+ if( xi == NULL ) -+ return NULL; -+ shminfo->shmid = shmget( IPC_PRIVATE, xi->bytes_per_line * xi->height, -+ IPC_CREAT|0600); -+ if( shminfo->shmid < 0 ) { -+ XDestroyImage( xi ); -+ return NULL; -+ } -+ shminfo->readOnly = False; -+ shminfo->shmaddr = (char*)shmat( shminfo->shmid, 0, 0 ); -+ if( shminfo->shmaddr == (char*)-1 ) { -+ XDestroyImage( xi ); -+ shmctl( shminfo->shmid, IPC_RMID, 0 ); -+ return NULL; -+ } -+ xi->data = shminfo->shmaddr; -+#ifndef QT_MITSHM_RMID_IGNORES_REFCOUNT -+ // mark as deleted to automatically free the memory in case -+ // of a crash (but this doesn't work e.g. on Solaris) -+ shmctl( shminfo->shmid, IPC_RMID, 0 ); -+#endif -+ if( shm_inited == 1 ) { // first time -+ XErrorHandler old_h = XSetErrorHandler( qt_mitshm_errorhandler ); -+ XShmAttach( dpy, shminfo ); -+ shm_inited = 2; -+ XSync( dpy, False ); -+ XSetErrorHandler( old_h ); -+ if( qt_mitshm_error ) { // oops ... perhaps we are remote? -+ shm_inited = 0; -+ XDestroyImage( xi ); -+ shmdt( shminfo->shmaddr ); -+#ifdef QT_MITSHM_RMID_IGNORES_REFCOUNT -+ shmctl( shminfo->shmid, IPC_RMID, 0 ); -+#endif -+ return NULL; -+ } -+ } else -+ XShmAttach( dpy, shminfo ); -+ return xi; -+} -+ -+static void qt_XShmDestroyImage( XImage* xi, XShmSegmentInfo* shminfo ) -+{ -+ XShmDetach( QPaintDevice::x11AppDisplay(), shminfo ); -+ XDestroyImage( xi ); -+ shmdt( shminfo->shmaddr ); -+#ifdef QT_MITSHM_RMID_IGNORES_REFCOUNT -+ shmctl( shminfo->shmid, IPC_RMID, 0 ); -+#endif -+} -+ -+static XImage* qt_XShmGetImage( const QPixmap* pix, int format, -+ XShmSegmentInfo* shminfo ) -+{ -+ XImage* xi = qt_XShmCreateImage( pix->x11Display(), (Visual*)pix->x11Visual(), -+ pix->depth(), format, 0, 0, pix->width(), pix->height(), 32, 0, shminfo ); -+ if( xi == NULL ) -+ return NULL; -+ if( XShmGetImage( pix->x11Display(), pix->handle(), xi, 0, 0, AllPlanes ) == False ) { -+ qt_XShmDestroyImage( xi, shminfo ); -+ return NULL; -+ } -+ return xi; -+} - -+#endif // QT_MITSHM_CONVERSIONS - - /***************************************************************************** - Internal functions -@@ -627,9 +730,20 @@ QImage QPixmap::convertToImage() const - d = 32; // > 8 ==> 32 - - XImage *xi = (XImage *)data->ximage; // any cached ximage? -- if ( !xi ) // fetch data from X server -+#ifdef QT_MITSHM_CONVERSIONS -+ bool mitshm_ximage = false; -+ XShmSegmentInfo shminfo; -+#endif -+ if ( !xi ) { // fetch data from X server -+#ifdef QT_MITSHM_CONVERSIONS -+ xi = qt_XShmGetImage( this, mono ? XYPixmap : ZPixmap, &shminfo ); -+ if( xi ) { -+ mitshm_ximage = true; -+ } else -+#endif - xi = XGetImage( x11Display(), hd, 0, 0, w, h, AllPlanes, - mono ? XYPixmap : ZPixmap ); -+ } - Q_CHECK_PTR( xi ); - if (!xi) - return image; // null image -@@ -640,15 +754,31 @@ QImage QPixmap::convertToImage() const - QImage::LittleEndian : QImage::BigEndian; - } - image.create( w, h, d, 0, bitOrder ); -- if ( image.isNull() ) // could not create image -+ if ( image.isNull() ) { // could not create image -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_ximage ) -+ qt_XShmDestroyImage( xi, &shminfo ); -+ else -+#endif -+ qSafeXDestroyImage( xi ); - return image; -+ } - - const QPixmap* msk = mask(); - const QPixmap *alf = data->alphapm; - - QImage alpha; - if (alf) { -- XImage *axi = XGetImage(x11Display(), alf->hd, 0, 0, w, h, AllPlanes, ZPixmap); -+ XImage* axi; -+#ifdef QT_MITSHM_CONVERSIONS -+ bool mitshm_aximage = false; -+ XShmSegmentInfo ashminfo; -+ axi = qt_XShmGetImage( alf, ZPixmap, &ashminfo ); -+ if( axi ) { -+ mitshm_aximage = true; -+ } else -+#endif -+ axi = XGetImage(x11Display(), alf->hd, 0, 0, w, h, AllPlanes, ZPixmap); - - if (axi) { - image.setAlphaBuffer( TRUE ); -@@ -662,6 +792,11 @@ QImage QPixmap::convertToImage() const - src += axi->bytes_per_line; - } - -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_aximage ) -+ qt_XShmDestroyImage( axi, &ashminfo ); -+ else -+#endif - qSafeXDestroyImage( axi ); - } - } else if (msk) { -@@ -804,6 +939,12 @@ QImage QPixmap::convertToImage() const - xi->bits_per_pixel ); - #endif - image.reset(); -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_ximage ) -+ qt_XShmDestroyImage( xi, &shminfo ); -+ else -+#endif -+ qSafeXDestroyImage( xi ); - return image; - } - -@@ -909,10 +1050,22 @@ QImage QPixmap::convertToImage() const - delete [] carr; - } - if ( data->optim != BestOptim ) { // throw away image data -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_ximage ) -+ qt_XShmDestroyImage( xi, &shminfo ); -+ else -+#endif - qSafeXDestroyImage( xi ); - ((QPixmap*)this)->data->ximage = 0; -- } else // keep ximage data -+ } else { // keep ximage data -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_ximage ) { // copy the XImage? -+ qt_XShmDestroyImage( xi, &shminfo ); -+ xi = 0; -+ } -+#endif - ((QPixmap*)this)->data->ximage = xi; -+ } - - return image; - } -@@ -1085,6 +1238,11 @@ bool QPixmap::convertFromImage( const QI - bool trucol = (visual->c_class == TrueColor || visual->c_class == DirectColor); - int nbytes = image.numBytes(); - uchar *newbits= 0; -+ int newbits_size = 0; -+#ifdef QT_MITSHM_CONVERSIONS -+ bool mitshm_ximage = false; -+ XShmSegmentInfo shminfo; -+#endif - - if ( trucol ) { // truecolor display - QRgb pix[256]; // pixel translation table -@@ -1113,10 +1271,18 @@ bool QPixmap::convertFromImage( const QI - } - } - -+#ifdef QT_MITSHM_CONVERSIONS -+ xi = qt_XShmCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0, &shminfo ); -+ if( xi != NULL ) { -+ mitshm_ximage = true; -+ newbits = (uchar*)xi->data; -+ } -+ else -+#endif - xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 ); -- Q_CHECK_PTR( xi ); - if (!xi) - return false; -+ if( newbits == NULL ) - newbits = (uchar *)malloc( xi->bytes_per_line*h ); - Q_CHECK_PTR( newbits ); - if ( !newbits ) // no memory -@@ -1323,6 +1489,7 @@ bool QPixmap::convertFromImage( const QI - } - - newbits = (uchar *)malloc( nbytes ); // copy image into newbits -+ newbits_size = nbytes; - Q_CHECK_PTR( newbits ); - if ( !newbits ) // no memory - return FALSE; -@@ -1440,11 +1607,18 @@ bool QPixmap::convertFromImage( const QI - } - - if ( !xi ) { // X image not created -+#ifdef QT_MITSHM_CONVERSIONS -+ xi = qt_XShmCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0, &shminfo ); -+ if( xi != NULL ) -+ mitshm_ximage = true; -+ else -+#endif - xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 ); - if ( xi->bits_per_pixel == 16 ) { // convert 8 bpp ==> 16 bpp - ushort *p2; - int p2inc = xi->bytes_per_line/sizeof(ushort); - ushort *newerbits = (ushort *)malloc( xi->bytes_per_line * h ); -+ newbits_size = xi->bytes_per_line * h; - Q_CHECK_PTR( newerbits ); - if ( !newerbits ) // no memory - return FALSE; -@@ -1462,6 +1636,14 @@ bool QPixmap::convertFromImage( const QI - "(bpp=%d)", xi->bits_per_pixel ); - #endif - } -+#ifdef QT_MITSHM_CONVERSIONS -+ if( newbits_size > 0 && mitshm_ximage ) { // need to copy to shared memory -+ memcpy( xi->data, newbits, newbits_size ); -+ free( newbits ); -+ newbits = (uchar*)xi->data; -+ } -+ else -+#endif - xi->data = (char *)newbits; - } - -@@ -1495,19 +1677,24 @@ bool QPixmap::convertFromImage( const QI - - } - -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_ximage ) -+ XShmPutImage( dpy, hd, qt_xget_readonly_gc( x11Screen(), FALSE ), -+ xi, 0, 0, 0, 0, w, h, False ); -+ else -+#endif - XPutImage( dpy, hd, qt_xget_readonly_gc( x11Screen(), FALSE ), - xi, 0, 0, 0, 0, w, h ); - -- if ( data->optim != BestOptim ) { // throw away image -- qSafeXDestroyImage( xi ); -- data->ximage = 0; -- } else { // keep ximage that we created -- data->ximage = xi; -- } - data->w = w; - data->h = h; - data->d = dd; - -+ XImage* axi = NULL; -+#ifdef QT_MITSHM_CONVERSIONS -+ bool mitshm_aximage = false; -+ XShmSegmentInfo ashminfo; -+#endif - if ( image.hasAlphaBuffer() ) { - QBitmap m; - m = image.createAlphaMask( conversion_flags ); -@@ -1543,13 +1730,22 @@ bool QPixmap::convertFromImage( const QI - data->alphapm->rendhd = - (HANDLE) XftDrawCreateAlpha( x11Display(), data->alphapm->hd, 8 ); - -- XImage *axi = XCreateImage(x11Display(), (Visual *) x11Visual(), -+#ifdef QT_MITSHM_CONVERSIONS -+ axi = qt_XShmCreateImage( x11Display(), (Visual*)x11Visual(), -+ 8, ZPixmap, 0, 0, w, h, 8, 0, &ashminfo ); -+ if( axi != NULL ) -+ mitshm_aximage = true; -+ else -+#endif -+ axi = XCreateImage(x11Display(), (Visual *) x11Visual(), - 8, ZPixmap, 0, 0, w, h, 8, 0); - - if (axi) { -+ if( axi->data==NULL ) { - // the data is deleted by qSafeXDestroyImage - axi->data = (char *) malloc(h * axi->bytes_per_line); - Q_CHECK_PTR( axi->data ); -+ } - char *aptr = axi->data; - - if (image.depth() == 32) { -@@ -1567,14 +1763,48 @@ bool QPixmap::convertFromImage( const QI - } - - GC gc = XCreateGC(x11Display(), data->alphapm->hd, 0, 0); -+ #ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_aximage ) -+ XShmPutImage( dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h, False ); -+ else -+#endif - XPutImage(dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h); - XFreeGC(x11Display(), gc); -- qSafeXDestroyImage(axi); - } - } - #endif // QT_NO_XFTFREETYPE - } - -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_ximage || mitshm_aximage ) -+ XSync( x11Display(), False ); // wait until processed -+#endif -+ -+ if ( data->optim != BestOptim ) { // throw away image -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_ximage ) -+ qt_XShmDestroyImage( xi, &shminfo ); -+ else -+#endif -+ qSafeXDestroyImage( xi ); -+ data->ximage = 0; -+ } else { // keep ximage that we created -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_ximage ) { // copy the XImage? -+ qt_XShmDestroyImage( xi, &shminfo ); -+ xi = 0; -+ } -+#endif -+ data->ximage = xi; -+ } -+ if( axi ) { -+#ifdef QT_MITSHM_CONVERSIONS -+ if( mitshm_aximage ) -+ qt_XShmDestroyImage( axi, &ashminfo ); -+ else -+#endif -+ qSafeXDestroyImage(axi); -+ } - return TRUE; - } - -@@ -1737,7 +1967,7 @@ QPixmap QPixmap::xForm( const QWMatrix & - return pm; - } - --#if defined(QT_MITSHM) -+#if defined(QT_MITSHM_XFORM) - static bool try_once = TRUE; - if (try_once) { - try_once = FALSE; -@@ -1770,7 +2000,7 @@ QPixmap QPixmap::xForm( const QWMatrix & - dbpl = ((w*bpp+31)/32)*4; - dbytes = dbpl*h; - --#if defined(QT_MITSHM) -+#if defined(QT_MITSHM_XFORM) - if ( use_mitshm ) { - dptr = (uchar *)xshmimg->data; - uchar fillbyte = bpp == 8 ? white.pixel() : 0xff; -@@ -1786,7 +2016,7 @@ QPixmap QPixmap::xForm( const QWMatrix & - memset( dptr, Qt::white.pixel( x11Screen() ), dbytes ); - else - memset( dptr, 0xff, dbytes ); --#if defined(QT_MITSHM) -+#if defined(QT_MITSHM_XFORM) - } - #endif - -@@ -1817,7 +2047,7 @@ QPixmap QPixmap::xForm( const QWMatrix & - } else { - xbpl = (w*bpp)/8; - p_inc = dbpl - xbpl; --#if defined(QT_MITSHM) -+#if defined(QT_MITSHM_XFORM) - if ( use_mitshm ) - p_inc = xshmimg->bytes_per_line - xbpl; - #endif -@@ -1854,7 +2084,7 @@ QPixmap QPixmap::xForm( const QWMatrix & - QPixmap pm( w, h ); - pm.data->uninit = FALSE; - pm.x11SetScreen( x11Screen() ); --#if defined(QT_MITSHM) -+#if defined(QT_MITSHM_XFORM) - if ( use_mitshm ) { - XCopyArea( dpy, xshmpm, pm.handle(), gc, 0, 0, w, h, 0, 0 ); - } else { -@@ -1863,7 +2093,7 @@ QPixmap QPixmap::xForm( const QWMatrix & - ZPixmap, 0, (char *)dptr, w, h, 32, 0 ); - XPutImage( dpy, pm.handle(), gc, xi, 0, 0, 0, 0, w, h); - qSafeXDestroyImage( xi ); --#if defined(QT_MITSHM) -+#if defined(QT_MITSHM_XFORM) - } - #endif - ---- mkspecs/linux-g++/qplatformdefs.h -+++ mkspecs/linux-g++/qplatformdefs.h -@@ -102,5 +102,6 @@ - #define QT_VSNPRINTF ::vsnprintf - #endif - -+#define QT_MITSHM - - #endif // QPLATFORMDEFS_H diff --git a/opensuse/core/qt3/0048-qclipboard_hack_80072.patch b/opensuse/core/qt3/0048-qclipboard_hack_80072.patch deleted file mode 100644 index 2f508019b..000000000 --- a/opensuse/core/qt3/0048-qclipboard_hack_80072.patch +++ /dev/null @@ -1,51 +0,0 @@ -qt-bugs@ issue : none, probably even won't be -bugs.kde.org number : 80072 -applied: no -author: Lubos Lunak <l.lunak@kde.org> - -A crude hack for KDE #80072. No good idea how to fix it properly yet :(. - -================================================================================ -Index: src/kernel/qclipboard_x11.cpp -=================================================================== ---- src/kernel/qclipboard_x11.cpp.orig -+++ src/kernel/qclipboard_x11.cpp -@@ -112,6 +112,7 @@ static int pending_timer_id = 0; - static bool pending_clipboard_changed = FALSE; - static bool pending_selection_changed = FALSE; - -+Q_EXPORT bool qt_qclipboard_bailout_hack = false; - - // event capture mechanism for qt_xclb_wait_for_event - static bool waiting_for_data = FALSE; -@@ -464,6 +465,15 @@ static Bool checkForClipboardEvents(Disp - || e->xselectionclear.selection == qt_xa_clipboard))); - } - -+static bool selection_request_pending = false; -+ -+static Bool check_selection_request_pending( Display*, XEvent* e, XPointer ) -+ { -+ if( e->type == SelectionRequest && e->xselectionrequest.owner == owner->winId()) -+ selection_request_pending = true; -+ return False; -+ } -+ - bool qt_xclb_wait_for_event( Display *dpy, Window win, int type, XEvent *event, - int timeout ) - { -@@ -515,6 +525,14 @@ bool qt_xclb_wait_for_event( Display *dp - do { - if ( XCheckTypedWindowEvent(dpy,win,type,event) ) - return TRUE; -+ if( qt_qclipboard_bailout_hack ) { -+ XEvent dummy; -+ selection_request_pending = false; -+ if ( owner != NULL ) -+ XCheckIfEvent(dpy,&dummy,check_selection_request_pending,NULL); -+ if( selection_request_pending ) -+ return TRUE; -+ } - - // process other clipboard events, since someone is probably requesting data from us - XEvent e; diff --git a/opensuse/core/qt3/0055-qtextedit_zoom.patch b/opensuse/core/qt3/0055-qtextedit_zoom.patch index ad4174a1f..38cdaa8a7 100644 --- a/opensuse/core/qt3/0055-qtextedit_zoom.patch +++ b/opensuse/core/qt3/0055-qtextedit_zoom.patch @@ -11,7 +11,7 @@ Index: widgets/qtextedit.cpp ================================================================================ --- src/widgets/qtextedit.cpp +++ src/widgets/qtextedit.cpp -@@ -5767,7 +5767,11 @@ +@@ -5774,7 +5774,11 @@ void QTextEdit::zoomIn( int range ) { QFont f( QScrollView::font() ); @@ -24,7 +24,7 @@ Index: widgets/qtextedit.cpp setFont( f ); } -@@ -5782,7 +5786,11 @@ +@@ -5789,7 +5793,11 @@ void QTextEdit::zoomOut( int range ) { QFont f( QScrollView::font() ); diff --git a/opensuse/core/qt3/0056-khotkeys_input_84434.patch b/opensuse/core/qt3/0056-khotkeys_input_84434.patch deleted file mode 100644 index d6092c3e9..000000000 --- a/opensuse/core/qt3/0056-khotkeys_input_84434.patch +++ /dev/null @@ -1,22 +0,0 @@ -qt-bugs@ issue : 58251 -bugs.kde.org number : 84434 -applied: no -author: Lubos Lunak <l.lunak@kde.org> - -Fixes keyboard input action in KHotKeys (see bug #84434). - -================================================================================ ---- src/kernel/qapplication_x11.cpp -+++ src/kernel/qapplication_x11.cpp -@@ -5401,8 +5401,10 @@ - qt_auto_repeat_data *d = (qt_auto_repeat_data *) arg; - if (d->error || - event->xkey.window != d->window || -- event->xkey.keycode != d->keycode) -+ event->xkey.keycode != d->keycode) { -+ d->error = TRUE; - return FALSE; -+ } - - if (event->type == XKeyPress) { - d->error = (! d->release || event->xkey.time - d->timestamp > 10); diff --git a/opensuse/core/qt3/0059-qpopup_has_mouse.patch b/opensuse/core/qt3/0059-qpopup_has_mouse.patch deleted file mode 100644 index 18ae0081d..000000000 --- a/opensuse/core/qt3/0059-qpopup_has_mouse.patch +++ /dev/null @@ -1,69 +0,0 @@ -qt-bugs@ issue : 49417 -bugs.kde.org number : 58719 -applied: no -author: Lubos Lunak <l.lunak@kde.org> - -Hello, - - please consider applying the two attached QPopupMenu patches fixing KDE bugs - #58719 and #74778 (http://bugs.kde.org/show_bug.cgi?id=58719, - http://bugs.kde.org/show_bug.cgi?id=74778), which complain about keyboard - navigation in popup menus being very uncomfortable because of being affected - by mouse position despite mouse not being used at all. - - - hasmouse.patch - (#58719) - use keyboard to open and navigate in any popup - menu and "accidentally" hit your mouse. Depending on the mouse cursor - position either no popup entry is selected or the random popup entry - happening to be at the cursor position becomes highlighted. The patch - basically copies the 'hasmouse' code from QMenuBar which prevents the mouse - having any effect on the popup if it's outside the popup geometry. - - [ ... #74778 ... ] - -================================================================================ ---- src/widgets/qpopupmenu.cpp -+++ src/widgets/qpopupmenu.cpp -@@ -253,6 +253,7 @@ - } scroll; - QSize calcSize; - QRegion mouseMoveBuffer; -+ uint hasmouse : 1; - }; - - static QPopupMenu* active_popup_menu = 0; -@@ -272,6 +273,7 @@ - d->scroll.scrollableSize = d->scroll.topScrollableIndex = 0; - d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone; - d->scroll.scrolltimer = 0; -+ d->hasmouse = 0; - isPopupMenu = TRUE; - #ifndef QT_NO_ACCEL - autoaccel = 0; -@@ -1741,6 +1743,11 @@ - - int item = itemAtPos( e->pos() ); - if ( item == -1 ) { // no valid item -+ if( !d->hasmouse ) { -+ tryMenuBar( e ); -+ return; -+ } -+ d->hasmouse = 0; - int lastActItem = actItem; - actItem = -1; - if ( lastActItem >= 0 ) -@@ -1752,6 +1759,7 @@ - } - } else { // mouse on valid item - // but did not register mouse press -+ d->hasmouse = 1; - if ( (e->state() & Qt::MouseButtonMask) && !mouseBtDn ) - mouseBtDn = TRUE; // so mouseReleaseEvent will pop down - -@@ -2160,6 +2168,7 @@ - */ - void QPopupMenu::leaveEvent( QEvent * ) - { -+ d->hasmouse = 0; - if ( testWFlags( WStyle_Tool ) && style().styleHint(QStyle::SH_PopupMenu_MouseTracking, this) ) { - int lastActItem = actItem; - actItem = -1; diff --git a/opensuse/core/qt3/0060-qpopup_ignore_mousepos.patch b/opensuse/core/qt3/0060-qpopup_ignore_mousepos.patch deleted file mode 100644 index 50d48bd35..000000000 --- a/opensuse/core/qt3/0060-qpopup_ignore_mousepos.patch +++ /dev/null @@ -1,60 +0,0 @@ -qt-bugs@ issue : 49417 -bugs.kde.org number : 74778 -applied: no -author: Lubos Lunak <l.lunak@kde.org> - - Hello, - - please consider applying the two attached QPopupMenu patches fixing KDE bugs - #58719 and #74778 (http://bugs.kde.org/show_bug.cgi?id=58719, - http://bugs.kde.org/show_bug.cgi?id=74778), which complain about keyboard - navigation in popup menus being very uncomfortable because of being affected - by mouse position despite mouse not being used at all. - - [... #58719 ... ] - - - ignoremousepos.patch - (#74778) - use keyboard to open some popup which - doesn't show up at mouse position (e.g. Alt+F3 with KWin or the context menu - key with some file selected in Konqueror). If the mouse is positioned in the - area where the popup shows, the random entry happening to be at the cursor - position becomes highlighted. - The patch fixes this by ignoring mouse events that happen at mouse position - which was current when the popup was shown, i.e. all mouse move events that - actually aren't triggered by mouse move are ignored. I first wanted to ignore - only the very first mouse move event (which should be caused by EnterNotify - for the popup) but I realized that Qt's event handling causes the popup to - possibly get more than just one initial move event, caused by LeaveNotify - events for normal widgets being transformed to mouse move events for the - popup, so I have no better idea how to solve this problem. - -================================================================================ ---- src/widgets/qpopupmenu.cpp -+++ src/widgets/qpopupmenu.cpp -@@ -254,6 +254,7 @@ - QSize calcSize; - QRegion mouseMoveBuffer; - uint hasmouse : 1; -+ QPoint ignoremousepos; - }; - - static QPopupMenu* active_popup_menu = 0; -@@ -1356,6 +1357,7 @@ - popupActive = -1; - if(style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this)) - d->mouseMoveBuffer = QRegion(); -+ d->ignoremousepos = QCursor::pos(); - } - - /*! -@@ -1703,6 +1705,11 @@ - - void QPopupMenu::mouseMoveEvent( QMouseEvent *e ) - { -+ if( e->globalPos() == d->ignoremousepos ) { -+ return; -+ } -+ d->ignoremousepos = QPoint(); -+ - motion++; - - if ( parentMenu && parentMenu->isPopupMenu ) { diff --git a/opensuse/core/qt3/0079-compositing-types.patch b/opensuse/core/qt3/0079-compositing-types.patch deleted file mode 100644 index 7899cf584..000000000 --- a/opensuse/core/qt3/0079-compositing-types.patch +++ /dev/null @@ -1,413 +0,0 @@ -qt-bugs@ issue : none -bugs.kde.org number : none -applied: no -author: Lubos Lunak <l.lunak@kde.org> - -This patch adds support for window types used for compositing (popup menu, dropdown menu, -tooltip, combobox, dnd). - ---- src/kernel/qdnd_x11.cpp.sav 2007-05-25 18:56:23.000000000 +0200 -+++ src/kernel/qdnd_x11.cpp 2007-05-31 10:30:58.000000000 +0200 -@@ -261,6 +261,7 @@ public: - QWidget(QApplication::desktop()->screen( screen ), - 0, WStyle_Customize | WStyle_Tool | WStyle_NoBorder | WX11BypassWM ), oldpmser( 0 ), oldbmser( 0 ) - { -+ x11SetWindowType( X11WindowTypeDND ); - } - - void setPixmap(QPixmap pm, QPoint hot) -@@ -1221,6 +1222,7 @@ void QDragManager::move( const QPoint & - // recreate the pixmap on the new screen... - delete qt_xdnd_deco; - qt_xdnd_deco = new QShapedPixmapWidget( screen ); -+ qt_xdnd_deco->x11SetWindowTransient( dragSource->topLevelWidget()); - if (!QWidget::mouseGrabber()) { - updatePixmap(); - qt_xdnd_deco->grabMouse(); -@@ -1774,6 +1776,7 @@ bool QDragManager::drag( QDragObject * o - - dragSource = (QWidget *)(object->parent()); - -+ qt_xdnd_deco->x11SetWindowTransient( dragSource->topLevelWidget()); - qApp->installEventFilter( this ); - qt_xdnd_source_current_time = qt_x_time; - XSetSelectionOwner( QPaintDevice::x11AppDisplay(), qt_xdnd_selection, ---- src/kernel/qapplication_x11.cpp.sav 2007-05-29 16:24:58.000000000 +0200 -+++ src/kernel/qapplication_x11.cpp 2007-05-31 10:30:58.000000000 +0200 -@@ -268,6 +268,11 @@ Atom qt_net_wm_window_type_menu = 0; - Atom qt_net_wm_window_type_utility = 0; - Atom qt_net_wm_window_type_splash = 0; - Atom qt_net_wm_window_type_override = 0; // KDE extension -+Atom qt_net_wm_window_type_dropdown_menu = 0; -+Atom qt_net_wm_window_type_popup_menu = 0; -+Atom qt_net_wm_window_type_tooltip = 0; -+Atom qt_net_wm_window_type_combo = 0; -+Atom qt_net_wm_window_type_dnd = 0; - Atom qt_net_wm_frame_strut = 0; // KDE extension - Atom qt_net_wm_state_stays_on_top = 0; // KDE extension - Atom qt_net_wm_pid = 0; -@@ -1920,6 +1925,11 @@ void qt_init_internal( int *argcptr, cha - qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_UTILITY", &qt_net_wm_window_type_utility ); - qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_SPLASH", &qt_net_wm_window_type_splash ); - qt_x11_intern_atom( "_KDE_NET_WM_WINDOW_TYPE_OVERRIDE", &qt_net_wm_window_type_override ); -+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", &qt_net_wm_window_type_dropdown_menu ); -+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_POPUP_MENU", &qt_net_wm_window_type_popup_menu ); -+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_TOOLTIP", &qt_net_wm_window_type_tooltip ); -+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_COMBO", &qt_net_wm_window_type_combo ); -+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_DND", &qt_net_wm_window_type_dnd ); - qt_x11_intern_atom( "_KDE_NET_WM_FRAME_STRUT", &qt_net_wm_frame_strut ); - qt_x11_intern_atom( "_NET_WM_STATE_STAYS_ON_TOP", - &qt_net_wm_state_stays_on_top ); ---- src/kernel/qwidget_x11.cpp.sav 2007-05-25 18:56:23.000000000 +0200 -+++ src/kernel/qwidget_x11.cpp 2007-05-31 10:30:58.000000000 +0200 -@@ -125,6 +125,11 @@ extern Atom qt_net_wm_window_type_menu; - extern Atom qt_net_wm_window_type_utility; - extern Atom qt_net_wm_window_type_splash; - extern Atom qt_net_wm_window_type_override; -+extern Atom qt_net_wm_window_type_dropdown_menu; -+extern Atom qt_net_wm_window_type_popup_menu; -+extern Atom qt_net_wm_window_type_combo; -+extern Atom qt_net_wm_window_type_dnd; -+extern Atom qt_net_wm_window_type_tooltip; - extern Atom qt_net_wm_pid; - extern Atom qt_net_wm_user_time; - extern Atom qt_enlightenment_desktop; -@@ -448,10 +453,6 @@ void QWidget::create( WId window, bool i - x11Colormap() ); - #endif // QT_NO_XFTFREETYPE - -- // NET window types -- long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 }; -- int curr_wintype = 0; -- - // NET window states - long net_winstates[6] = { 0, 0, 0, 0, 0, 0 }; - int curr_winstate = 0; -@@ -473,7 +474,6 @@ void QWidget::create( WId window, bool i - if ( testWFlags(WStyle_Splash) ) { - if (qt_net_supports(qt_net_wm_window_type_splash)) { - clearWFlags( WX11BypassWM ); -- net_wintypes[curr_wintype++] = qt_net_wm_window_type_splash; - } else { - setWFlags( WX11BypassWM | WStyle_Tool | WStyle_NoBorder ); - } -@@ -482,27 +482,22 @@ void QWidget::create( WId window, bool i - mwmhints.decorations = 0L; - mwmhints.flags |= (1L << 1); // MWM_HINTS_DECORATIONS - -- if ( testWFlags( WStyle_NoBorder ) ) { -- // override netwm type - quick and easy for KDE noborder -- net_wintypes[curr_wintype++] = qt_net_wm_window_type_override; -- } else { -- if ( testWFlags( WStyle_NormalBorder | WStyle_DialogBorder ) ) { -- mwmhints.decorations |= (1L << 1); // MWM_DECOR_BORDER -- mwmhints.decorations |= (1L << 2); // MWM_DECOR_RESIZEH -- } -+ if ( testWFlags( WStyle_NormalBorder | WStyle_DialogBorder ) ) { -+ mwmhints.decorations |= (1L << 1); // MWM_DECOR_BORDER -+ mwmhints.decorations |= (1L << 2); // MWM_DECOR_RESIZEH -+ } - -- if ( testWFlags( WStyle_Title ) ) -- mwmhints.decorations |= (1L << 3); // MWM_DECOR_TITLE -+ if ( testWFlags( WStyle_Title ) ) -+ mwmhints.decorations |= (1L << 3); // MWM_DECOR_TITLE - -- if ( testWFlags( WStyle_SysMenu ) ) -- mwmhints.decorations |= (1L << 4); // MWM_DECOR_MENU -+ if ( testWFlags( WStyle_SysMenu ) ) -+ mwmhints.decorations |= (1L << 4); // MWM_DECOR_MENU - -- if ( testWFlags( WStyle_Minimize ) ) -- mwmhints.decorations |= (1L << 5); // MWM_DECOR_MINIMIZE -+ if ( testWFlags( WStyle_Minimize ) ) -+ mwmhints.decorations |= (1L << 5); // MWM_DECOR_MINIMIZE - -- if ( testWFlags( WStyle_Maximize ) ) -- mwmhints.decorations |= (1L << 6); // MWM_DECOR_MAXIMIZE -- } -+ if ( testWFlags( WStyle_Maximize ) ) -+ mwmhints.decorations |= (1L << 6); // MWM_DECOR_MAXIMIZE - - if (testWFlags(WStyle_Tool)) { - wsa.save_under = True; -@@ -522,23 +517,6 @@ void QWidget::create( WId window, bool i - } - } - -- // ### need a better way to do this -- if (inherits("QPopupMenu")) { -- // menu netwm type -- net_wintypes[curr_wintype++] = qt_net_wm_window_type_menu; -- } else if (inherits("QToolBar")) { -- // toolbar netwm type -- net_wintypes[curr_wintype++] = qt_net_wm_window_type_toolbar; -- } else if (testWFlags(WStyle_Customize) && testWFlags(WStyle_Tool)) { -- // utility netwm type -- net_wintypes[curr_wintype++] = qt_net_wm_window_type_utility; -- } -- -- if (dialog) // dialog netwm type -- net_wintypes[curr_wintype++] = qt_net_wm_window_type_dialog; -- // normal netwm type - default -- net_wintypes[curr_wintype++] = qt_net_wm_window_type_normal; -- - // stays on top - if (testWFlags(WStyle_StaysOnTop)) { - net_winstates[curr_winstate++] = qt_net_wm_state_above; -@@ -573,6 +551,7 @@ void QWidget::create( WId window, bool i - wsa.save_under = True; - XChangeWindowAttributes( dpy, id, CWOverrideRedirect | CWSaveUnder, - &wsa ); -+ x11SetWindowType(); - } else if ( topLevel && !desktop ) { // top-level widget - QWidget *p = parentWidget(); // real parent - if (p) -@@ -632,12 +611,7 @@ void QWidget::create( WId window, bool i - else - XDeleteProperty(dpy, id, qt_xa_motif_wm_hints); - -- // set _NET_WM_WINDOW_TYPE -- if (curr_wintype > 0) -- XChangeProperty(dpy, id, qt_net_wm_window_type, XA_ATOM, 32, PropModeReplace, -- (unsigned char *) net_wintypes, curr_wintype); -- else -- XDeleteProperty(dpy, id, qt_net_wm_window_type); -+ x11SetWindowType(); - - // set _NET_WM_WINDOW_STATE - if (curr_winstate > 0) -@@ -896,6 +870,64 @@ void QWidget::reparentSys( QWidget *pare - setMouseTracking(mouse_tracking); - } - -+// Sets the EWMH (netwm) window type. Needed as a separate function -+// because create() may be too soon in some cases. -+void QWidget::x11SetWindowType( X11WindowType type ) -+{ -+ // NET window types -+ long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 }; -+ int curr_wintype = 0; -+ if( testWFlags(WType_Desktop)) -+ return; -+ if( type == X11WindowTypeSelect ) { -+ if ( testWFlags(WStyle_Splash)) { -+ if (qt_net_supports(qt_net_wm_window_type_splash)) { -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_splash; -+ } -+ } else if (inherits("QToolBar")) { -+ // toolbar netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_toolbar; -+ } else if (testWFlags(WStyle_Customize) && testWFlags(WStyle_Tool)) { -+ // utility netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_utility; -+ } else if (testWFlags(WType_Dialog)) { -+ // dialog netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_dialog; -+ } -+ } else if( type == X11WindowTypeCombo ) { -+ // combo netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_combo; -+ } else if( type == X11WindowTypeDND ) { -+ // dnd netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_dnd; -+ } else if( type == X11WindowTypeDropdown ) { -+ // dropdown netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_dropdown_menu; -+ } else if( type == X11WindowTypePopup ) { -+ // popup netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_popup_menu; -+ } else if( type == X11WindowTypeMenu ) { -+ // menu netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_menu; -+ } else if( type == X11WindowTypeTooltip ) { -+ // tooltip netwm type -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_tooltip; -+ } -+ -+ // normal netwm type - default -+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_normal; -+ // set _NET_WM_WINDOW_TYPE -+ if (curr_wintype > 0) -+ XChangeProperty(x11Display(), winId(), qt_net_wm_window_type, XA_ATOM, 32, PropModeReplace, -+ (unsigned char *) net_wintypes, curr_wintype); -+ else -+ XDeleteProperty(x11Display(), winId(), qt_net_wm_window_type); -+} -+ -+void QWidget::x11SetWindowTransient( QWidget* parent ) -+{ -+ XSetTransientForHint( x11Display(), winId(), parent->winId()); -+} - - /*! - Translates the widget coordinate \a pos to global screen ---- src/kernel/qwidget.h.sav 2007-05-25 18:56:23.000000000 +0200 -+++ src/kernel/qwidget.h 2007-05-31 10:30:58.000000000 +0200 -@@ -464,7 +464,19 @@ public: - CGContextRef macCGContext(bool clipped=TRUE) const; - #endif - #endif -- -+#if defined(Q_WS_X11) -+ enum X11WindowType { -+ X11WindowTypeSelect, -+ X11WindowTypeCombo, -+ X11WindowTypeDND, -+ X11WindowTypeTooltip, -+ X11WindowTypeMenu, // torn-off -+ X11WindowTypeDropdown, -+ X11WindowTypePopup -+ }; -+ void x11SetWindowType( X11WindowType type = X11WindowTypeSelect ); -+ void x11SetWindowTransient( QWidget* parent ); -+#endif - void setWindowOpacity(double level); - double windowOpacity() const; - ---- src/dialogs/qdialog.cpp.sav 2007-05-25 18:56:23.000000000 +0200 -+++ src/dialogs/qdialog.cpp 2007-05-31 10:30:58.000000000 +0200 -@@ -705,7 +701,7 @@ void QDialog::show() - && qApp->mainWidget() && qApp->mainWidget()->isVisible() - && !qApp->mainWidget()->isMinimized()) { - // make sure the transient for hint is set properly for modal dialogs -- XSetTransientForHint( x11Display(), winId(), qApp->mainWidget()->winId() ); -+ x11SetWindowTransient( qApp->mainWidget()); - } - #endif // Q_WS_X11 - ---- src/widgets/qtooltip.cpp.sav 2007-05-25 18:56:23.000000000 +0200 -+++ src/widgets/qtooltip.cpp 2007-05-31 10:30:58.000000000 +0200 -@@ -72,6 +72,7 @@ public: - polish(); - setText(text); - adjustSize(); -+ x11SetWindowType( X11WindowTypeTooltip ); - } - void setWidth( int w ) { resize( sizeForWidth( w ) ); } - }; -@@ -528,6 +529,10 @@ void QTipManager::showTip() - if (!widget) - return; - -+#ifdef Q_WS_X11 -+ label->x11SetWindowTransient( widget->topLevelWidget()); -+#endif -+ - #ifdef Q_WS_MAC - QRect screen = QApplication::desktop()->availableGeometry( scr ); - #else ---- src/widgets/qcombobox.cpp.sav 2007-05-25 18:56:23.000000000 +0200 -+++ src/widgets/qcombobox.cpp 2007-05-31 10:49:13.000000000 +0200 -@@ -389,12 +389,8 @@ public: - inline QListBox * listBox() { return lBox; } - inline QComboBoxPopup * popup() { return pop; } - void updateLinedGeometry(); -- -- void setListBox( QListBox *l ) { lBox = l ; usingLBox = TRUE; -- l->setMouseTracking( TRUE );} -- -- void setPopupMenu( QComboBoxPopup * pm, bool isPopup=TRUE ) -- { pop = pm; if(isPopup) usingLBox = FALSE; } -+ void setListBox( QListBox *l ); -+ void setPopupMenu( QComboBoxPopup * pm, bool isPopup=TRUE ); - - int current; - int maxCount; -@@ -440,6 +436,30 @@ void QComboBoxData::updateLinedGeometry( - ed->setGeometry( r ); - } - -+void QComboBoxData::setListBox( QListBox *l ) -+{ -+ lBox = l; -+ usingLBox = TRUE; -+ l->setMouseTracking( TRUE ); -+#ifdef Q_WS_X11 -+ l->x11SetWindowType( QWidget::X11WindowTypeCombo ); -+ l->x11SetWindowTransient( combo->topLevelWidget()); -+#endif -+} -+ -+void QComboBoxData::setPopupMenu( QComboBoxPopup * pm, bool isPopup ) -+{ -+ pop = pm; -+ if(isPopup) -+ usingLBox = FALSE; -+#ifdef Q_WS_X11 -+ if( pm ) { -+ pm->x11SetWindowType( QWidget::X11WindowTypeCombo ); -+ pm->x11SetWindowTransient( combo->topLevelWidget()); -+ } -+#endif -+} -+ - static inline bool checkInsertIndex( const char *method, const char * name, - int count, int *index) - { ---- src/widgets/qpopupmenu.cpp.sav 2007-05-25 18:56:23.000000000 +0200 -+++ src/widgets/qpopupmenu.cpp 2007-05-31 11:09:22.000000000 +0200 -@@ -298,6 +298,9 @@ QPopupMenu::QPopupMenu( QWidget *parent, - connectModalRecursionSafety = 0; - - setFocusPolicy( StrongFocus ); -+#ifdef Q_WS_X11 -+ x11SetWindowType( X11WindowTypePopup ); -+#endif - } - - /*! -@@ -537,6 +540,29 @@ void QPopupMenu::popup( const QPoint &po - emit aboutToShow(); - updateSize(TRUE); - } -+#ifdef Q_WS_X11 -+#ifndef QT_NO_MENUBAR -+ QMenuData *top = this; // find top level -+ while ( top->parentMenu ) -+ top = top->parentMenu; -+ if( top->isMenuBar ) -+ x11SetWindowType( X11WindowTypeDropdown ); -+ if( parentMenu && parentMenu->isMenuBar ) -+ x11SetWindowTransient( static_cast< QMenuBar* >( parentMenu )->topLevelWidget()); -+#endif -+ if( parentMenu && !parentMenu->isMenuBar ) -+ x11SetWindowTransient( static_cast< QPopupMenu* >( parentMenu )); -+ if( !parentMenu ) { -+ // hackish ... try to find the main window related to this popup -+ QWidget* parent = parentWidget() ? parentWidget()->topLevelWidget() : NULL; -+ if( parent == NULL ) -+ parent = QApplication::widgetAt( pos ); -+ if( parent == NULL ) -+ parent = qApp->activeWindow(); -+ if( parent != NULL ) -+ x11SetWindowTransient( parent ); -+ } -+#endif - - int sw = screen.width(); // screen width - int sh = screen.height(); // screen height -@@ -1390,6 +1416,13 @@ void QPopupMenu::hide() - #if defined(QT_ACCESSIBILITY_SUPPORT) - QAccessible::updateAccessibility( this, 0, QAccessible::PopupMenuEnd ); - #endif -+#ifndef QT_NO_MENUBAR -+ QMenuData *top = this; // find top level -+ while ( top->parentMenu ) -+ top = top->parentMenu; -+ if( top->isMenuBar ) -+ x11SetWindowType( X11WindowTypePopup ); // reset -+#endif - parentMenu = 0; - hidePopups(); - QWidget::hide(); -@@ -2713,6 +2746,9 @@ void QPopupMenu::toggleTearOff() - geometry().topLeft(), FALSE ); - p->mitems->setAutoDelete( FALSE ); - p->tornOff = TRUE; -+#ifdef Q_WS_X11 -+ p->x11SetWindowType( X11WindowTypeMenu ); -+#endif - for ( QMenuItemListIt it( *mitems ); it.current(); ++it ) { - if ( it.current()->id() != QMenuData::d->aInt && !it.current()->widget() ) - p->mitems->append( it.current() ); diff --git a/opensuse/core/qt3/0080-net-wm-sync-request.patch b/opensuse/core/qt3/0080-net-wm-sync-request.patch deleted file mode 100644 index b3e23cd13..000000000 --- a/opensuse/core/qt3/0080-net-wm-sync-request.patch +++ /dev/null @@ -1,301 +0,0 @@ -This qt-copy patch has been slightly modified to apply to the SUSE package -(does not apply directly because of the immodule patch). - ---- src/kernel/qwidget_x11.cpp.sav 2007-08-29 15:04:42.000000000 +0200 -+++ src/kernel/qwidget_x11.cpp 2007-08-29 15:06:17.000000000 +0200 -@@ -85,6 +85,12 @@ static QWidget *keyboardGrb = 0; - extern Time qt_x_time; - extern Time qt_x_user_time; - -+#ifndef QT_NO_XSYNC -+extern Atom qt_net_wm_sync_request_counter; -+extern Atom qt_net_wm_sync_request; -+extern bool qt_use_xsync; -+#endif -+ - // defined in qfont_x11.cpp - extern bool qt_has_xft; - -@@ -593,11 +599,14 @@ void QWidget::create( WId window, bool i - - XResizeWindow( dpy, id, crect.width(), crect.height() ); - XStoreName( dpy, id, qAppName() ); -- Atom protocols[4]; -+ Atom protocols[5]; - int n = 0; - protocols[n++] = qt_wm_delete_window; // support del window protocol - protocols[n++] = qt_wm_take_focus; // support take focus window protocol - protocols[n++] = qt_net_wm_ping; // support _NET_WM_PING protocol -+#ifndef QT_NO_XSYNC -+ protocols[n++] = qt_net_wm_sync_request;// support the _NET_WM_SYNC_REQUEST protocol -+#endif - if ( testWFlags( WStyle_ContextHelp ) ) - protocols[n++] = qt_net_wm_context_help; - XSetWMProtocols( dpy, id, protocols, n ); -@@ -623,6 +632,14 @@ void QWidget::create( WId window, bool i - XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace, - (unsigned char *) &curr_pid, 1); - -+#ifndef QT_NO_XSYNC -+ // set _NET_WM_SYNC_COUNTER -+ createSyncCounter(); -+ long counterVal = topData()->syncCounter; -+ XChangeProperty( dpy, id, qt_net_wm_sync_request_counter, XA_CARDINAL, 32, PropModeReplace, -+ (unsigned char*) &counterVal, 1); -+#endif -+ - // when we create a toplevel widget, the frame strut should be dirty - fstrut_dirty = 1; - -@@ -722,6 +739,9 @@ void QWidget::destroy( bool destroyWindo - if ( destroyWindow ) - qt_XDestroyWindow( this, x11Display(), winid ); - } -+#ifndef QT_NO_XSYNC -+ destroySyncCounter(); -+#endif - setWinId( 0 ); - - extern void qPRCleanup( QWidget *widget ); // from qapplication_x11.cpp -@@ -781,6 +801,10 @@ void QWidget::reparentSys( QWidget *pare - destroyInputContext(); - } - -+#ifndef QT_NO_XSYNC -+ destroySyncCounter(); -+#endif -+ - if ( isTopLevel() || !parent ) // we are toplevel, or reparenting to toplevel - topData()->parentWinId = 0; - -@@ -2464,6 +2488,11 @@ void QWidget::createTLSysExtra() - // created lazily - extra->topextra->xic = 0; - #endif -+#ifndef QT_NO_XSYNC -+ extra->topextra->syncCounter = 0; -+ extra->topextra->syncRequestValue[0] = 0; -+ extra->topextra->syncRequestValue[1] = 0; -+#endif - } - - void QWidget::deleteTLSysExtra() -@@ -2510,6 +2539,51 @@ void QWidget::checkChildrenDnd() - } - } - -+ -+#ifndef QT_NO_XSYNC -+// create a window's XSyncCounter -+void QWidget::createSyncCounter() -+{ -+ if( !qt_use_xsync || !isTopLevel() || topData()->syncCounter ) -+ return; -+ XSyncValue zero; -+ XSyncIntToValue( &zero, 0 ); -+ topData()->syncCounter = XSyncCreateCounter( x11Display(), zero ); -+} -+ -+// destroy a window's XSyncCounter -+void QWidget::destroySyncCounter() -+{ -+ if( !qt_use_xsync || !extra || !extra->topextra -+ || !extra->topextra->syncCounter ) -+ return; -+ XSyncDestroyCounter( x11Display(), extra->topextra->syncCounter ); -+ extra->topextra->syncCounter = 0; -+} -+ -+// increment a window's XSyncCounter -+void QWidget::incrementSyncCounter() -+{ -+ if( qt_use_xsync && topData()->syncCounter && -+ !(topData()->syncRequestValue[0] == 0 && -+ topData()->syncRequestValue[1] == 0) ) { -+ XSyncValue val; -+ XSyncIntsToValue( &val, topData()->syncRequestValue[ 0 ], topData()->syncRequestValue[ 1 ] ); -+ XSyncSetCounter( x11Display(), topData()->syncCounter, val ); -+ topData()->syncRequestValue[0] = topData()->syncRequestValue[1] = 0; -+ } -+} -+ -+// handle _NET_WM_SYNC_REQUEST -+void QWidget::handleSyncRequest( void* ev ) -+{ -+ XEvent* xev = (XEvent*)ev; -+ topData()->syncRequestValue[ 0 ] = xev->xclient.data.l[ 2 ]; -+ topData()->syncRequestValue[ 1 ] = xev->xclient.data.l[ 3 ]; -+} -+#endif // QT_NO_XSYNC -+ -+ - /*! - \property QWidget::acceptDrops - \brief whether drop events are enabled for this widget ---- src/kernel/qt_x11_p.h.sav 2007-08-29 15:04:42.000000000 +0200 -+++ src/kernel/qt_x11_p.h 2007-08-29 15:05:27.000000000 +0200 -@@ -174,6 +174,11 @@ extern "C" { - #endif // QT_NO_XRENDER - - -+#ifndef QT_NO_XSYNC -+# include <X11/extensions/sync.h> -+#endif // QT_NO_XSYNC -+ -+ - #ifndef QT_NO_XKB - # include <X11/XKBlib.h> - #endif // QT_NO_XKB ---- src/kernel/qwidget.h.sav 2007-08-29 15:04:42.000000000 +0200 -+++ src/kernel/qwidget.h 2007-08-29 15:05:52.000000000 +0200 -@@ -605,6 +605,14 @@ private: - void focusInputContext(); - void unfocusInputContext(); - void checkChildrenDnd(); -+ -+#ifndef QT_NO_XSYNC -+ void createSyncCounter(); -+ void destroySyncCounter(); -+ void incrementSyncCounter(); -+ void handleSyncRequest( void* ev ); -+#endif -+ - #elif defined(Q_WS_MAC) - uint own_id : 1, macDropEnabled : 1; - EventHandlerRef window_event; -@@ -986,6 +994,10 @@ struct Q_EXPORT QTLWExtra { - #if defined(QT_NO_IM_EXTENSIONS) - void *xic; // Input Context - #endif -+#ifndef QT_NO_XSYNC -+ ulong syncCounter; -+ uint syncRequestValue[2]; -+#endif - #endif - #if defined(Q_WS_MAC) - WindowGroupRef group; ---- src/kernel/qapplication_x11.cpp.sav 2007-08-29 15:04:42.000000000 +0200 -+++ src/kernel/qapplication_x11.cpp 2007-08-29 15:05:27.000000000 +0200 -@@ -288,6 +288,11 @@ Atom *qt_net_supported_list = 0; - Window *qt_net_virtual_root_list = 0; - - -+// X11 SYNC support -+#ifndef QT_NO_XSYNC -+Atom qt_net_wm_sync_request_counter = 0; -+Atom qt_net_wm_sync_request = 0; -+#endif - - // client leader window - Window qt_x11_wm_client_leader = 0; -@@ -312,6 +317,13 @@ static int xrandr_eventbase; - // Display - Q_EXPORT bool qt_use_xrender = FALSE; - -+#ifndef QT_NO_XSYNC -+// True if SYNC extension exists on the connected display -+bool qt_use_xsync = FALSE; -+static int xsync_eventbase; -+static int xsync_errorbase; -+#endif -+ - // modifier masks for alt/meta - detected when the application starts - static long qt_alt_mask = 0; - static long qt_meta_mask = 0; -@@ -2007,6 +2019,11 @@ void qt_init_internal( int *argcptr, cha - qt_x11_intern_atom( "UTF8_STRING", &qt_utf8_string ); - qt_x11_intern_atom( "_SGI_DESKS_MANAGER", &qt_sgi_desks_manager ); - -+#ifndef QT_NO_XSYNC -+ qt_x11_intern_atom( "_NET_WM_SYNC_REQUEST_COUNTER", &qt_net_wm_sync_request_counter ); -+ qt_x11_intern_atom( "_NET_WM_SYNC_REQUEST", &qt_net_wm_sync_request ); -+#endif -+ - qt_xdnd_setup(); - qt_x11_motifdnd_init(); - -@@ -2043,6 +2060,15 @@ void qt_init_internal( int *argcptr, cha - } - #endif // QT_NO_XRENDER - -+#ifndef QT_NO_XSYNC -+ // Try to initialize SYNC extension on the connected display -+ int xsync_major, xsync_minor; -+ if ( XSyncQueryExtension( appDpy, &xsync_eventbase, &xsync_errorbase ) && -+ XSyncInitialize( appDpy, &xsync_major, &xsync_minor ) ) { -+ qt_use_xsync = TRUE; -+ } -+#endif -+ - #ifndef QT_NO_XKB - // If XKB is detected, set the GrabsUseXKBState option so input method - // compositions continue to work (ie. deadkeys) -@@ -3196,6 +3222,10 @@ int QApplication::x11ClientMessage(QWidg - XSendEvent( event->xclient.display, event->xclient.window, - False, SubstructureNotifyMask|SubstructureRedirectMask, event ); - } -+#ifndef QT_NO_XSYNC -+ } else if (a == qt_net_wm_sync_request ) { -+ widget->handleSyncRequest( event ); -+#endif - } - } else if ( event->xclient.message_type == qt_qt_scrolldone ) { - widget->translateScrollDoneEvent(event); -@@ -5818,6 +5848,21 @@ bool QETWidget::translateScrollDoneEvent - return FALSE; - } - -+#if defined(Q_C_CALLBACKS) -+extern "C" { -+#endif -+#ifndef QT_NO_XSYNC -+static Bool qt_net_wm_sync_request_scanner(Display*, XEvent* event, XPointer arg) -+{ -+ return (event->type == ClientMessage && event->xclient.window == *(Window*)arg -+ && event->xclient.message_type == qt_wm_protocols -+ && event->xclient.data.l[ 0 ] == qt_net_wm_sync_request ); -+} -+#endif -+ -+#if defined(Q_C_CALLBACKS) -+} -+#endif - - // - // ConfigureNotify (window move and resize) event translation -@@ -5849,6 +5894,7 @@ bool QETWidget::translateConfigEvent( co - if (! extra || extra->compress_events) { - // ConfigureNotify compression for faster opaque resizing - XEvent otherEvent; -+ int compressed_configs = 0; - while ( XCheckTypedWindowEvent( x11Display(), winId(), ConfigureNotify, - &otherEvent ) ) { - if ( qt_x11EventFilter( &otherEvent ) ) -@@ -5869,7 +5915,18 @@ bool QETWidget::translateConfigEvent( co - newCPos.ry() = otherEvent.xconfigure.y + - otherEvent.xconfigure.border_width; - } -+ ++compressed_configs; -+ } -+#ifndef QT_NO_XSYNC -+ // _NET_WM_SYNC_REQUEST compression -+ Window wid = winId(); -+ while ( compressed_configs && -+ XCheckIfEvent( x11Display(), &otherEvent, -+ qt_net_wm_sync_request_scanner, (XPointer)&wid ) ) { -+ handleSyncRequest( (void*)&otherEvent ); -+ --compressed_configs; - } -+#endif - } - - QRect cr ( geometry() ); -@@ -5923,6 +5980,8 @@ bool QETWidget::translateConfigEvent( co - repaint( !testWFlags(WResizeNoErase) || transbg ); - } - -+ incrementSyncCounter(); -+ - return TRUE; - } - diff --git a/opensuse/core/qt3/0085-fix-buildkey.diff b/opensuse/core/qt3/0085-fix-buildkey.diff deleted file mode 100644 index 5891d6144..000000000 --- a/opensuse/core/qt3/0085-fix-buildkey.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- configure -+++ configure -@@ -3140,15 +3140,15 @@ case "$COMPILER" in - g++*) - # GNU C++ - QMAKE_CONF_COMPILER=`grep "QMAKE_CXX[^_A-Z0-9a-z]" $QMAKESPEC/qmake.conf | sed "s,.* *= *\(.*\)$,\1,"` -- COMPILER_VERSION=`${QMAKE_CONF_COMPILER} --version 2>/dev/null` -+ COMPILER_VERSION=`${QMAKE_CONF_COMPILER} --version 2>/dev/null | sed 's,^[^0-9]*,,g'` - case "$COMPILER_VERSION" in -- *2.95.*) -+ 2.95.*) - COMPILER_VERSION="2.95.*" - ;; -- *3.*) -+ 3.*) - COMPILER_VERSION="3.*" - ;; -- *4.*) -+ 4.*) - COMPILER_VERSION="4" - ;; - *) diff --git a/opensuse/core/qt3/add_qexport_visibility.patch b/opensuse/core/qt3/add_qexport_visibility.patch index da256192c..26399a498 100644 --- a/opensuse/core/qt3/add_qexport_visibility.patch +++ b/opensuse/core/qt3/add_qexport_visibility.patch @@ -2,7 +2,7 @@ Index: src/kernel/qgplugin.h ================================================================================ --- src/kernel/qgplugin.h +++ src/kernel/qgplugin.h -@@ -90,35 +90,19 @@ +@@ -93,35 +93,19 @@ return i->iface(); \ } @@ -50,7 +50,7 @@ Index: src/kernel/qgplugin.h struct QUnknownInterface; --- src/tools/qglobal.h +++ src/tools/qglobal.h -@@ -882,6 +882,10 @@ +@@ -885,6 +885,10 @@ # define Q_TEMPLATE_EXTERN # undef Q_DISABLE_COPY /* avoid unresolved externals */ # endif diff --git a/opensuse/core/qt3/aliasing.diff b/opensuse/core/qt3/aliasing.diff index 88ef366b5..d3e2f58ea 100644 --- a/opensuse/core/qt3/aliasing.diff +++ b/opensuse/core/qt3/aliasing.diff @@ -1,6 +1,6 @@ --- src/qt.pro +++ src/qt.pro -@@ -40,6 +40,8 @@ +@@ -41,6 +41,8 @@ XML_CPP = xml STYLES_CPP = styles EMBEDDED_CPP = embedded diff --git a/opensuse/core/qt3/external-libs.diff b/opensuse/core/qt3/external-libs.diff index dcf7f04ae..c11174071 100644 --- a/opensuse/core/qt3/external-libs.diff +++ b/opensuse/core/qt3/external-libs.diff @@ -67,7 +67,7 @@ target.path += $$plugins.path/sqldrivers --- src/tools/qcstring.cpp +++ src/tools/qcstring.cpp -@@ -50,7 +50,7 @@ +@@ -53,7 +53,7 @@ #include <ctype.h> #include <limits.h> #ifndef QT_NO_COMPRESS diff --git a/opensuse/core/qt3/fix-GL-loading.diff b/opensuse/core/qt3/fix-GL-loading.diff deleted file mode 100644 index 61c2f379a..000000000 --- a/opensuse/core/qt3/fix-GL-loading.diff +++ /dev/null @@ -1,44 +0,0 @@ ---- src/opengl/qgl_x11.cpp -+++ src/opengl/qgl_x11.cpp 2004/04/13 14:56:00 -@@ -267,7 +267,7 @@ - typedef Status (*_XmuLookupStandardColormap)( Display *dpy, int screen, VisualID visualid, unsigned int depth, - Atom property, Bool replace, Bool retain ); - _XmuLookupStandardColormap qt_XmuLookupStandardColormap; -- qt_XmuLookupStandardColormap = (_XmuLookupStandardColormap) QLibrary::resolve("Xmu", "XmuLookupStandardColormap"); -+ qt_XmuLookupStandardColormap = (_XmuLookupStandardColormap) QLibrary::resolve("Xmu.so.6", "XmuLookupStandardColormap"); - if (!qt_XmuLookupStandardColormap) - qFatal("Unable to resolve Xmu symbols - please check your Xmu library installation."); - #define XmuLookupStandardColormap qt_XmuLookupStandardColormap -Index: src/tools/qlibrary.cpp -=================================================================== -RCS file: /home/kde/qt-copy/src/tools/qlibrary.cpp,v -retrieving revision 1.26 -diff -u -3 -p -r1.26 qlibrary.cpp ---- src/tools/qlibrary.cpp 4 Feb 2004 14:25:02 -0000 1.26 -+++ src/tools/qlibrary.cpp 2 Jun 2004 08:26:21 -0000 -@@ -424,7 +424,8 @@ QString QLibrary::library() const - } else { - tmpfilename = QString( "lib%1" ).arg( filename ); - } -- tmpfilename += filter; -+ if ( !filename.contains(".so") ) -+ tmpfilename += filter; - if(QFile::exists(tmpfilename) || it == filters.end()) { - filename = tmpfilename; - break; -Index: src/opengl/qgl_x11.cpp -=================================================================== -RCS file: /home/kde/qt-copy/src/opengl/qgl_x11.cpp,v -retrieving revision 1.34 -diff -u -3 -p -r1.34 qgl_x11.cpp ---- src/opengl/qgl_x11.cpp 21 Dec 2003 00:48:09 -0000 1.34 -+++ src/opengl/qgl_x11.cpp 2 Jun 2004 08:26:21 -0000 -@@ -116,7 +116,7 @@ bool qt_resolve_gl_symbols(bool fatal) - if (gl_syms_resolved) - return TRUE; - -- QLibrary gl("GL"); -+ QLibrary gl("GL.so.1"); - gl.setAutoUnload(FALSE); - - qt_glCallLists = (_glCallLists) gl.resolve("glCallLists"); diff --git a/opensuse/core/qt3/fix-assistant-path.patch b/opensuse/core/qt3/fix-assistant-path.patch index 3f30e7013..f508d5069 100644 --- a/opensuse/core/qt3/fix-assistant-path.patch +++ b/opensuse/core/qt3/fix-assistant-path.patch @@ -1,6 +1,6 @@ --- tools/assistant/lib/qassistantclient.cpp +++ tools/assistant/lib/qassistantclient.cpp -@@ -128,7 +128,7 @@ +@@ -135,7 +135,7 @@ : QObject( parent, name ), host ( "localhost" ) { if ( path.isEmpty() ) diff --git a/opensuse/core/qt3/fix-key-release-event-with-imm.diff b/opensuse/core/qt3/fix-key-release-event-with-imm.diff deleted file mode 100644 index 3bd1b8da2..000000000 --- a/opensuse/core/qt3/fix-key-release-event-with-imm.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- src/kernel/qapplication_x11.cpp -+++ src/kernel/qapplication_x11.cpp -@@ -3294,11 +3294,7 @@ - // filtering opportunity first to ensure all input methods work - // properly regardless of application design. - --#ifndef QT_NO_IM_EXTENSIONS - if( keywidget && keywidget->isEnabled() && keywidget->isInputMethodEnabled() ) { --#else -- if( keywidget && keywidget->isEnabled() ) { --#endif - if( ( event->type==XKeyPress || event->type==XKeyRelease ) && - sm_blockUserInput ) // block user interaction during session management - return TRUE; -@@ -5220,11 +5216,12 @@ - } else { - key = (int)(long)keyDict->find( keycode ); - if ( key ) -- if( !willRepeat ) // Take out key of dictionary only if this call. -+ if( !willRepeat && statefulTranslation ) // Take out key of dictionary only if this call. - keyDict->take( keycode ); - long s = (long)textDict->find( keycode ); - if ( s ) { -- textDict->take( keycode ); -+ if( statefulTranslation ) -+ textDict->take( keycode ); - ascii = (char)(s-256); - } - } ---- src/kernel/qwidget_x11.cpp -+++ src/kernel/qwidget_x11.cpp -@@ -2699,11 +2699,10 @@ - { - QInputContext *qic = 0; - --#if !defined(QT_NO_IM_EXTENSIONS) - if ( isInputMethodEnabled() ) { -+#if !defined(QT_NO_IM_EXTENSIONS) - qic = icHolderWidget()->ic; - #else -- { - // icHolderWidget is always topLevelWidget - QTLWExtra *topdata = icHolderWidget()->topData(); - qic = (QInputContext *)topdata->xic; -@@ -2754,10 +2753,8 @@ - */ - void QWidget::createInputContext() - { --#if !defined(QT_NO_IM_EXTENSIONS) - if( !isInputMethodEnabled() || QApplication::closingDown() ) - return; --#endif - - QWidget *icWidget = icHolderWidget(); - #ifndef QT_NO_IM diff --git a/opensuse/core/qt3/fix-qtranslator-crash.diff b/opensuse/core/qt3/fix-qtranslator-crash.diff index e28d7126a..2e3488c86 100644 --- a/opensuse/core/qt3/fix-qtranslator-crash.diff +++ b/opensuse/core/qt3/fix-qtranslator-crash.diff @@ -1,6 +1,6 @@ --- src/kernel/qtranslator.cpp +++ src/kernel/qtranslator.cpp -@@ -1012,7 +1012,7 @@ +@@ -1015,7 +1015,7 @@ char con[256]; for ( ;; ) { t >> len; diff --git a/opensuse/core/qt3/fix-xinerama-dialog-placement.diff b/opensuse/core/qt3/fix-xinerama-dialog-placement.diff deleted file mode 100644 index 26ca37c16..000000000 --- a/opensuse/core/qt3/fix-xinerama-dialog-placement.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- src/dialogs/qdialog.cpp -+++ src/dialogs/qdialog.cpp -@@ -803,7 +803,9 @@ - w = w->topLevelWidget(); - QRect desk; - if ( w ) { -- scrn = QApplication::desktop()->screenNumber( w ); -+ // Use mapToGlobal rather than geometry() in case w might -+ // be embedded in another application -+ scrn = QApplication::desktop()->screenNumber( w->mapToGlobal( QPoint(0,0) ) ); - } else if ( QApplication::desktop()->isVirtualDesktop() ) { - scrn = QApplication::desktop()->screenNumber( QCursor::pos() ); - } else { diff --git a/opensuse/core/qt3/gcc46.diff b/opensuse/core/qt3/gcc46.diff index beae96ff2..756aadd7b 100644 --- a/opensuse/core/qt3/gcc46.diff +++ b/opensuse/core/qt3/gcc46.diff @@ -1,20 +1,8 @@ -Index: src/tools/qvaluelist.h -=================================================================== ---- src/tools/qvaluelist.h.orig 2011-03-31 20:14:47.200973928 +0200 -+++ src/tools/qvaluelist.h 2011-03-31 20:14:55.352615654 +0200 -@@ -50,6 +50,7 @@ - #ifndef QT_NO_STL - #include <iterator> - #include <list> -+#include <cstddef> - #endif - - //#define QT_CHECK_VALUELIST_RANGE Index: src/tools/qvaluevector.h =================================================================== --- src/tools/qvaluevector.h.orig 2008-01-15 20:09:13.000000000 +0100 +++ src/tools/qvaluevector.h 2011-03-31 20:15:15.904712567 +0200 -@@ -244,7 +244,7 @@ public: +@@ -246,7 +246,7 @@ public: typedef const value_type& const_reference; typedef size_t size_type; #ifndef QT_NO_STL @@ -27,7 +15,7 @@ Index: src/tools/qmap.h =================================================================== --- src/tools/qmap.h.orig 2008-01-15 20:09:13.000000000 +0100 +++ src/tools/qmap.h 2011-03-31 20:24:35.802101605 +0200 -@@ -107,7 +107,7 @@ class QMapIterator +@@ -108,7 +108,7 @@ class QMapIterator #endif typedef T value_type; #ifndef QT_NO_STL @@ -36,7 +24,7 @@ Index: src/tools/qmap.h #else typedef int difference_type; #endif -@@ -223,7 +223,7 @@ class QMapConstIterator +@@ -224,7 +224,7 @@ class QMapConstIterator #endif typedef T value_type; #ifndef QT_NO_STL @@ -45,7 +33,7 @@ Index: src/tools/qmap.h #else typedef int difference_type; #endif -@@ -604,7 +604,7 @@ public: +@@ -605,7 +605,7 @@ public: typedef value_type& reference; typedef const value_type& const_reference; #ifndef QT_NO_STL diff --git a/opensuse/core/qt3/kmenu-search-fix.diff b/opensuse/core/qt3/kmenu-search-fix.diff index 8aff068ad..c63011de0 100644 --- a/opensuse/core/qt3/kmenu-search-fix.diff +++ b/opensuse/core/qt3/kmenu-search-fix.diff @@ -1,6 +1,6 @@ --- src/widgets/qpopupmenu.cpp +++ src/widgets/qpopupmenu.cpp -@@ -1354,6 +1354,7 @@ +@@ -1391,6 +1391,7 @@ performDelayedChanges(); updateSize(TRUE); QWidget::show(); diff --git a/opensuse/core/qt3/lib64-plugin-support.diff b/opensuse/core/qt3/lib64-plugin-support.diff index 384673269..e78a9cf2b 100644 --- a/opensuse/core/qt3/lib64-plugin-support.diff +++ b/opensuse/core/qt3/lib64-plugin-support.diff @@ -1,6 +1,6 @@ --- src/tools/qgpluginmanager.cpp +++ src/tools/qgpluginmanager.cpp 2004/09/25 11:46:41 -@@ -377,6 +377,9 @@ +@@ -380,6 +380,9 @@ QString basename = (*git).left( (*git).find( QChar(0xfffd) ) ); ++git; diff --git a/opensuse/core/qt3/limit-image-size.diff b/opensuse/core/qt3/limit-image-size.diff index dcf8d6f21..6d4fab3fa 100644 --- a/opensuse/core/qt3/limit-image-size.diff +++ b/opensuse/core/qt3/limit-image-size.diff @@ -2,7 +2,7 @@ Index: kernel/qasyncimageio.cpp ================================================================================ --- src/kernel/qasyncimageio.cpp +++ src/kernel/qasyncimageio.cpp -@@ -901,7 +901,12 @@ +@@ -904,7 +904,12 @@ sheight = newtop + newheight; if (img.isNull()) { @@ -16,7 +16,7 @@ Index: kernel/qasyncimageio.cpp memset( img.bits(), 0, img.numBytes() ); if (consumer) consumer->setSize(swidth, sheight); } -@@ -956,9 +961,15 @@ +@@ -959,9 +964,15 @@ if (backingstore.width() < w || backingstore.height() < h) { // We just use the backing store as a byte array @@ -35,7 +35,7 @@ Index: kernel/qasyncimageio.cpp for (int ln=0; ln<h; ln++) { --- src/kernel/qimage.cpp +++ src/kernel/qimage.cpp -@@ -65,6 +65,8 @@ +@@ -68,6 +68,8 @@ #define QT_NO_IMAGE_16_BIT #endif @@ -44,7 +44,7 @@ Index: kernel/qasyncimageio.cpp /*! \class QImage -@@ -1201,6 +1203,28 @@ +@@ -1211,6 +1213,28 @@ data->alpha = enable; } @@ -73,7 +73,7 @@ Index: kernel/qasyncimageio.cpp /*! Sets the image \a width, \a height, \a depth, its number of colors -@@ -1230,6 +1254,14 @@ +@@ -1240,6 +1264,14 @@ reset(); // reset old data if ( width <= 0 || height <= 0 || depth <= 0 || numColors < 0 ) return FALSE; // invalid parameter(s) @@ -90,7 +90,7 @@ Index: kernel/qasyncimageio.cpp qWarning( "QImage::create: Bit order is required for 1 bpp images" ); --- src/kernel/qimage.h +++ src/kernel/qimage.h -@@ -194,6 +194,10 @@ +@@ -197,6 +197,10 @@ int quality=-1 ) const; bool save( QIODevice * device, const char* format, int quality=-1 ) const; diff --git a/opensuse/core/qt3/mng-reading-fix.patch b/opensuse/core/qt3/mng-reading-fix.patch index f0582ac6c..ccfd1c452 100644 --- a/opensuse/core/qt3/mng-reading-fix.patch +++ b/opensuse/core/qt3/mng-reading-fix.patch @@ -1,6 +1,6 @@ --- src/kernel/qmngio.cpp.sav 2007-02-23 14:01:19.000000000 +0100 +++ src/kernel/qmngio.cpp 2007-08-28 15:27:28.000000000 +0200 -@@ -411,8 +411,11 @@ int QMNGFormat::decode( QImage& img, QIm +@@ -414,8 +414,11 @@ int QMNGFormat::decode( QImage& img, QIm } losttime += losingtimer.elapsed(); @@ -14,7 +14,7 @@ losingtimer.start(); image = 0; -@@ -422,6 +425,13 @@ int QMNGFormat::decode( QImage& img, QIm +@@ -425,6 +428,13 @@ int QMNGFormat::decode( QImage& img, QIm // Move back unused tail memcpy(buffer,buffer+ubuffer,nbuffer); } diff --git a/opensuse/core/qt3/parseFontName.diff b/opensuse/core/qt3/parseFontName.diff index eb0c6cbea..d6ad66602 100644 --- a/opensuse/core/qt3/parseFontName.diff +++ b/opensuse/core/qt3/parseFontName.diff @@ -1,6 +1,6 @@ --- src/kernel/qfontdatabase.cpp +++ src/kernel/qfontdatabase.cpp -@@ -2470,11 +2470,14 @@ void QFontDatabase::parseFontName(const +@@ -2476,11 +2476,14 @@ void QFontDatabase::parseFontName(const int i = name.find('['); int li = name.findRev(']'); diff --git a/opensuse/core/qt3/pluginmanager-fix.diff b/opensuse/core/qt3/pluginmanager-fix.diff index 88ad08ae4..d24c38aa1 100644 --- a/opensuse/core/qt3/pluginmanager-fix.diff +++ b/opensuse/core/qt3/pluginmanager-fix.diff @@ -1,6 +1,6 @@ --- src/tools/qgpluginmanager.cpp +++ src/tools/qgpluginmanager.cpp -@@ -383,6 +383,8 @@ +@@ -389,6 +389,8 @@ sameBasename << (*git).mid( (*git).find( QChar(0xfffd) ) + 1 ); ++git; } diff --git a/opensuse/core/qt3/qcstring-format-warnings.diff b/opensuse/core/qt3/qcstring-format-warnings.diff index a597dc578..cac735dbb 100644 --- a/opensuse/core/qt3/qcstring-format-warnings.diff +++ b/opensuse/core/qt3/qcstring-format-warnings.diff @@ -1,6 +1,6 @@ --- src/tools/qcstring.h (revision 658213) +++ src/tools/qcstring.h (working copy) -@@ -161,7 +161,11 @@ public: +@@ -164,7 +164,11 @@ public: QCString copy() const; diff --git a/opensuse/core/qt3/qt-3.3.8c.diff b/opensuse/core/qt3/qt-3.3.8c.diff deleted file mode 100644 index 860e99e4b..000000000 --- a/opensuse/core/qt3/qt-3.3.8c.diff +++ /dev/null @@ -1,58 +0,0 @@ ---- src/kernel/qobject.cpp -+++ src/kernel/qobject.cpp -@@ -360,6 +360,30 @@ - } - } - -+/*! \internal -+ TQt compatibility function -+*/ -+QObjectList QObject::childrenListObject() { -+ if (children()) return *(children()); -+ else return QObjectList(); -+} -+ -+/*! \internal -+ TQt compatibility function -+*/ -+const QObjectList QObject::childrenListObject() const { -+ if (children()) return *(children()); -+ else return QObjectList(); -+} -+ -+/*! \internal -+ TQt compatibility function -+*/ -+const QObjectList QObject::objectTreesListObject() { -+ if (objectTrees()) return *(objectTrees()); -+ else return QObjectList(); -+} -+ - - /***************************************************************************** - QObject member functions ---- src/kernel/qobject.h -+++ src/kernel/qobject.h -@@ -101,8 +101,11 @@ - - QObject *child( const char *objName, const char *inheritsClass = 0, bool recursiveSearch = TRUE ); //### const in 4.0 - const QObjectList *children() const { return childObjects; } -+ QObjectList childrenListObject(); -+ const QObjectList childrenListObject() const; - - static const QObjectList *objectTrees(); -+ static const QObjectList objectTreesListObject(); - - QObjectList *queryList( const char *inheritsClass = 0, - const char *objName = 0, ---- src/tools/qglobal.h -+++ src/tools/qglobal.h -@@ -41,7 +41,7 @@ - #ifndef QGLOBAL_H - #define QGLOBAL_H - --#define QT_VERSION_STR "3.3.8b" -+#define QT_VERSION_STR "3.3.8c" - /* - QT_VERSION is (major << 16) + (minor << 8) + patch. - */ diff --git a/opensuse/core/qt3/qt-transparency.patch b/opensuse/core/qt3/qt-transparency.patch index d2de72f0d..b7bfa7b8a 100644 --- a/opensuse/core/qt3/qt-transparency.patch +++ b/opensuse/core/qt3/qt-transparency.patch @@ -1,6 +1,6 @@ --- src/kernel/qapplication.cpp +++ src/kernel/qapplication.cpp -@@ -317,6 +317,7 @@ +@@ -320,6 +320,7 @@ void qt_cleanup(); #if defined(Q_WS_X11) void qt_init( Display* dpy, Qt::HANDLE, Qt::HANDLE ); @@ -8,7 +8,7 @@ #endif Q_EXPORT bool qt_tryModalHelper( QWidget *widget, QWidget **rettop ); -@@ -905,7 +906,7 @@ +@@ -908,7 +909,7 @@ qt_init( &argc, argv, GuiClient ); } else { @@ -19,7 +19,7 @@ process_cmdline( &argc, argv ); --- src/kernel/qapplication_x11.cpp +++ src/kernel/qapplication_x11.cpp -@@ -197,6 +197,7 @@ +@@ -201,6 +201,7 @@ static Display *appDpy = 0; // X11 application display static char *appDpyName = 0; // X11 display name static bool appForeignDpy = FALSE; // we didn't create display @@ -27,7 +27,7 @@ static bool appSync = FALSE; // X11 synchronization #if defined(QT_DEBUG) static bool appNoGrab = FALSE; // X11 grabbing enabled -@@ -1610,7 +1611,7 @@ +@@ -1632,7 +1633,7 @@ setlocale( LC_ALL, "" ); // use correct char set mapping setlocale( LC_NUMERIC, "C" ); // make sprintf()/scanf() work @@ -36,7 +36,7 @@ // Qt part of other application appForeignDpy = TRUE; -@@ -2390,6 +2391,10 @@ +@@ -2432,6 +2433,10 @@ qt_init_internal( 0, 0, display, visual, colormap ); } diff --git a/opensuse/core/qt3/qt.patch b/opensuse/core/qt3/qt.patch deleted file mode 100644 index fb236265a..000000000 --- a/opensuse/core/qt3/qt.patch +++ /dev/null @@ -1,270 +0,0 @@ ---- src/dialogs/qcolordialog.cpp -+++ src/dialogs/qcolordialog.cpp -@@ -60,6 +60,10 @@ - QColor macGetColor( const QColor& initial, QWidget *parent, const char *name ); - #endif - -+#ifdef Q_WS_X11 -+#include "private/qtkdeintegration_x11_p.h" -+#endif -+ - //////////// QWellArray BEGIN - - struct QWellArrayData; -@@ -1478,7 +1482,10 @@ - QColor QColorDialog::getColor( const QColor& initial, QWidget *parent, - const char *name ) - { --#if defined(Q_WS_MAC) -+#if defined(Q_WS_X11) -+ if( QKDEIntegration::enabled()) -+ return QKDEIntegration::getColor( initial, parent, name ); -+#elif defined(Q_WS_MAC) - return macGetColor(initial, parent, name); - #endif - -@@ -1516,6 +1523,13 @@ - QWidget *parent, const char* name ) - { - #if defined(Q_WS_MAC) -+ if( QKDEIntegration::enabled()) { -+ QColor color = QKDEIntegration::getColor( QColor( initial ), parent, name ); -+ if( ok ) -+ *ok = color.isValid(); -+ return color.rgba(); -+ } -+#elif defined(Q_WS_MAC) - return macGetRgba(initial, ok, parent, name); - #endif - ---- src/dialogs/qfiledialog.cpp -+++ src/dialogs/qfiledialog.cpp -@@ -92,6 +92,10 @@ - #include "qvbox.h" - #include "qwidgetstack.h" - -+#ifdef Q_WS_X11 -+#include "private/qtkdeintegration_x11_p.h" -+#endif -+ - #ifdef Q_WS_WIN - #ifdef QT_THREAD_SUPPORT - # include <private/qmutexpool_p.h> -@@ -3464,7 +3468,11 @@ - if ( workingDirectory->isNull() ) - *workingDirectory = ::toRootIfNotExists( QDir::currentDirPath() ); - --#if defined(Q_WS_WIN) -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::getOpenFileNames( filter, workingDirectory, parent, name, -+ caption, selectedFilter, false ).first(); -+#elif defined(Q_WS_WIN) - if ( qt_use_native_dialogs && qApp->style().styleHint( QStyle::SH_GUIStyle ) == WindowsStyle ) - return winGetOpenFileName( initialSelection, filter, workingDirectory, - parent, name, caption, selectedFilter ); -@@ -3585,7 +3593,11 @@ - if ( workingDirectory->isNull() ) - *workingDirectory = ::toRootIfNotExists( QDir::currentDirPath() ); - --#if defined(Q_WS_WIN) -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::getSaveFileName( initialSelection, filter, workingDirectory, -+ parent, name, caption, selectedFilter ); -+#elif defined(Q_WS_WIN) - if ( qt_use_native_dialogs && qApp->style().styleHint( QStyle::SH_GUIStyle ) == WindowsStyle ) - return winGetSaveFileName( initialSelection, filter, workingDirectory, - parent, name, caption, selectedFilter ); -@@ -4475,7 +4487,17 @@ - if ( workingDirectory ) - wd = *workingDirectory; - --#if defined(Q_WS_WIN) -+#if defined(Q_WS_X11) -+ QString initialDir; -+ if ( !dir.isEmpty() ) { -+ QUrlOperator u( dir ); -+ if ( QFileInfo( u.path() ).isDir() ) -+ initialDir = dir; -+ } else -+ initialDir = QString::null; -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::getExistingDirectory( initialDir, parent, name, caption ); -+#elif defined(Q_WS_WIN) - QString initialDir; - if ( !dir.isEmpty() ) { - QUrlOperator u( dir ); -@@ -5636,7 +5658,10 @@ - } - } - --#if defined(Q_WS_WIN) -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::getOpenFileNames( filter, workingDirectory, parent, name, caption, selectedFilter, true ); -+#elif defined(Q_WS_WIN) - if ( qt_use_native_dialogs && qApp->style().styleHint( QStyle::SH_GUIStyle ) == WindowsStyle ) - return winGetOpenFileNames( filter, workingDirectory, parent, name, caption, selectedFilter ); - #elif defined(Q_WS_MAC) ---- src/dialogs/qfontdialog.cpp -+++ src/dialogs/qfontdialog.cpp -@@ -56,6 +56,10 @@ - #include <private/qfontdata_p.h> - #include <qvalidator.h> - -+#ifdef Q_WS_X11 -+#include "private/qtkdeintegration_x11_p.h" -+#endif -+ - /*! - \class QFontDialog qfontdialog.h - \ingroup dialogs -@@ -384,9 +388,15 @@ - return getFont( ok, 0, parent, name ); - } - -+extern bool qt_use_native_dialogs; -+ - QFont QFontDialog::getFont( bool *ok, const QFont *def, - QWidget *parent, const char* name) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::getFont( ok, def, parent, name ); -+#endif - QFont result; - if ( def ) - result = *def; ---- src/dialogs/qmessagebox.cpp -+++ src/dialogs/qmessagebox.cpp -@@ -54,6 +54,12 @@ - #endif - - -+#ifdef Q_WS_X11 -+#include "private/qtkdeintegration_x11_p.h" -+#endif -+ -+extern bool qt_use_native_dialogs; -+ - // Internal class - don't touch - - class QMessageBoxLabel : public QLabel -@@ -1110,6 +1116,10 @@ - const QString& caption, const QString& text, - int button0, int button1, int button2 ) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::information( parent, caption, text, button0, button1, button2 ); -+#endif - QMessageBox *mb = new QMessageBox( caption, text, Information, - button0, button1, button2, - parent, "qt_msgbox_information", TRUE, -@@ -1157,6 +1167,10 @@ - const QString& caption, const QString& text, - int button0, int button1, int button2 ) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::question( parent, caption, text, button0, button1, button2 ); -+#endif - QMessageBox *mb = new QMessageBox( caption, text, Question, - button0, button1, button2, - parent, "qt_msgbox_information", TRUE, -@@ -1205,6 +1219,10 @@ - const QString& caption, const QString& text, - int button0, int button1, int button2 ) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::warning( parent, caption, text, button0, button1, button2 ); -+#endif - QMessageBox *mb = new QMessageBox( caption, text, Warning, - button0, button1, button2, - parent, "qt_msgbox_warning", TRUE, -@@ -1253,6 +1271,10 @@ - const QString& caption, const QString& text, - int button0, int button1, int button2 ) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::critical( parent, caption, text, button0, button1, button2 ); -+#endif - QMessageBox *mb = new QMessageBox( caption, text, Critical, - button0, button1, button2, - parent, "qt_msgbox_critical", TRUE, -@@ -1400,6 +1422,11 @@ - int defaultButtonNumber, - int escapeButtonNumber ) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::information( parent, caption, text, -+ button0Text, button1Text, button2Text, defaultButtonNumber, escapeButtonNumber ); -+#endif - return textBox( parent, Information, caption, text, - button0Text, button1Text, button2Text, - defaultButtonNumber, escapeButtonNumber ); -@@ -1442,6 +1469,11 @@ - int defaultButtonNumber, - int escapeButtonNumber ) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::question( parent, caption, text, -+ button0Text, button1Text, button2Text, defaultButtonNumber, escapeButtonNumber ); -+#endif - return textBox( parent, Question, caption, text, - button0Text, button1Text, button2Text, - defaultButtonNumber, escapeButtonNumber ); -@@ -1486,6 +1518,11 @@ - int defaultButtonNumber, - int escapeButtonNumber ) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::warning( parent, caption, text, -+ button0Text, button1Text, button2Text, defaultButtonNumber, escapeButtonNumber ); -+#endif - return textBox( parent, Warning, caption, text, - button0Text, button1Text, button2Text, - defaultButtonNumber, escapeButtonNumber ); -@@ -1526,6 +1563,11 @@ - int defaultButtonNumber, - int escapeButtonNumber ) - { -+#if defined(Q_WS_X11) -+ if ( qt_use_native_dialogs && QKDEIntegration::enabled()) -+ return QKDEIntegration::critical( parent, caption, text, -+ button0Text, button1Text, button2Text, defaultButtonNumber, escapeButtonNumber ); -+#endif - return textBox( parent, Critical, caption, text, - button0Text, button1Text, button2Text, - defaultButtonNumber, escapeButtonNumber ); ---- src/kernel/qt.h -+++ src/kernel/qt.h -@@ -313,6 +313,10 @@ - #endif // Private headers - - -+#ifdef Q_WS_X11 -+#include "private/qtkdeintegration_x11_p.h" -+#endif -+ - #ifdef Q_WS_MAC - #include <qaquastyle.h> - #include <qmacstyle_mac.h> ---- src/kernel/qt_x11.pri -+++ src/kernel/qt_x11.pri -@@ -10,6 +10,9 @@ - - SOURCES += $$KERNEL_CPP/qtaddons_x11.cpp - PRECOMPILED_HEADER = kernel/qt_pch.h -+ -+ SOURCES += $$KERNEL_CPP/qtkdeintegration_x11.cpp -+ HEADERS += $$KERNEL_H/qtkdeintegration_x11_p.h - } - - nas { diff --git a/opensuse/core/qt3/qt3-arm-gcc4.patch b/opensuse/core/qt3/qt3-arm-gcc4.patch deleted file mode 100644 index d9f38f547..000000000 --- a/opensuse/core/qt3/qt3-arm-gcc4.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- src/tools/qglobal.h -+++ src/tools/qglobal.h -@@ -317,7 +317,7 @@ - supposedly know what you are doing.) */ - # if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP) - # define Q_PACKED __attribute__ ((packed)) --# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 -+# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ > 3 - # define Q_NO_PACKED_REFERENCE - # endif - # endif ---- src/tools/qstring.h -+++ src/tools/qstring.h -@@ -194,7 +194,7 @@ - char latin1() const { return ucs > 0xff ? 0 : (char) ucs; } - ushort unicode() const { return ucs; } - #ifdef Q_NO_PACKED_REFERENCE -- ushort &unicode() { return *(&ucs); } -+ ushort &unicode() { return *((ushort*)&ucs); } - #else - ushort &unicode() { return ucs; } - #endif diff --git a/opensuse/core/qt3/qt3-devel-doc.changes b/opensuse/core/qt3/qt3-devel-doc.changes index db0df1efa..bffb1fdc2 100644 --- a/opensuse/core/qt3/qt3-devel-doc.changes +++ b/opensuse/core/qt3/qt3-devel-doc.changes @@ -1,4 +1,23 @@ ------------------------------------------------------------------- +Sat Nov 19 23:23:57 UTC 2011 - andrea@nucleus.it + +- Removed all the patches already applied in the 3.3.8d tree. +- Modified all the remaining to apply with fuzz=0. +- Created a new patch to revert the use of libiodbc to libodbc + otherwise qt3-unixODBC does not build. +- Some cosmetic change to the specfiles. + +------------------------------------------------------------------- +Sun Nov 13 22:40:37 UTC 2011 - robxu9@gmail.com + +- Remove 0001-dnd_optimization.patch; upstream + +------------------------------------------------------------------- +Sun Nov 13 16:28:34 UTC 2011 - robxu9@gmail.com + +- Qt3 has a new upstream; update to 3.3.8d + +------------------------------------------------------------------- Fri Sep 23 10:16:33 UTC 2011 - coolo@suse.com - fix qt3-extensions diff --git a/opensuse/core/qt3/qt3-devel-doc.spec b/opensuse/core/qt3/qt3-devel-doc.spec index 601b85b0c..aa2dbcfa9 100644 --- a/opensuse/core/qt3/qt3-devel-doc.spec +++ b/opensuse/core/qt3/qt3-devel-doc.spec @@ -37,12 +37,8 @@ BuildArch: noarch Provides: qt3-devel-tutorial Obsoletes: qt3-devel-tutorial Requires: qt3-devel -%define x11_free -x11-free- -%define rversion %version # COMMON-BEGIN # COMMON-BEGIN -%define x11_free -x11-free- -%define rversion 3.3.8b Source0: http://mirror.its.uidaho.edu/pub/trinity/releases/3.5.13/dependencies/qt3-3.3.8.d.tar.gz Source1: build_script.sh Source2: qtconfig3.desktop @@ -55,10 +51,8 @@ Source9: linguist.desktop Source5: linguist.png Source10: qt3.sh Source11: qt3.csh -# Translations did not change at 3.3.8c +# Translations did not change at 3.3.8d Source12: qt3-3.3.8b-translations.tar.bz2 -Source100: qtkdeintegration_x11.cpp -Source101: qtkdeintegration_x11_p.h Source102: baselibs.conf Source200: attributes Source201: update_spec.pl @@ -71,43 +65,24 @@ Patch14: lib64-plugin-support.diff Patch15: pluginmanager-fix.diff Patch18: no-rpath.dif Patch19: shut-up.diff -Patch21: fix-GL-loading.diff Patch23: fix-accessible.diff -Patch28: fix-key-release-event-with-imm.diff Patch31: limit-image-size.diff -Patch34: 0005-qpixmap_mitshm.patch Patch35: qt-transparency.patch Patch37: 0055-qtextedit_zoom.patch -Patch38: 0048-qclipboard_hack_80072.patch Patch39: fix-qtranslator-crash.diff -Patch40: 0059-qpopup_has_mouse.patch -Patch41: 0060-qpopup_ignore_mousepos.patch Patch42: add_qexport_visibility.patch -Patch43: 0056-khotkeys_input_84434.patch -Source250: enable-designer-plugins.diff -Patch53: fix-xinerama-dialog-placement.diff Patch54: kmenu-search-fix.diff -Patch55: qt3-fix-cast.diff -Patch100: qt.patch -Patch101: qt3-arm-gcc4.patch -Patch102: xinerama.patch Patch113: fix-assistant-path.patch Patch117: qtimer-debug.diff -Patch119: xinerama-qpopupmenu.diff Patch121: qt3-warnings.diff -Patch123: use-xrandr-1.2.diff Patch125: qcstring-format-warnings.diff Patch127: mng-reading-fix.patch -Patch128: 0079-compositing-types.patch -Patch129: 0080-net-wm-sync-request.patch -Patch132: revert-qt-3.3.8-khmer-fix.diff -Patch133: 0085-fix-buildkey.diff Patch134: fix-xinput-clash.diff Patch135: parseFontName.diff Patch136: qt3-no-date.diff Patch137: popen-leak-fix.diff -Patch138: qt3-libpng14.diff Patch139: gcc46.diff +Patch140: revert-iodbc-to-uodbc.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -122,16 +97,6 @@ This package contains the documentation for the Qt 3 Development Kit. You will find documentation, precompiled examples, and a tutorial for getting started with Qt in /usr/lib/qt3/doc. -This package contains the documentation for the Qt 3 Development Kit. - -You will find documentation, precompiled examples, and a tutorial for -getting started with Qt in /usr/lib/qt3/doc. - -This package contains the documentation for the Qt 3 Development Kit. - -You will find documentation, precompiled examples, and a tutorial for -getting started with Qt in /usr/lib/qt3/doc. - %define build_sub_dirs src plugins/src tools/designer/uilib/ tools/designer/uic tools/qtconfig tools/assistant/lib tools/assistant tutorial %prep @@ -148,55 +113,28 @@ fi %patch18 %patch19 %patch23 -#%patch28 %patch31 -%patch34 %patch35 %patch37 -%patch38 %patch39 -%patch40 -%patch41 %patch42 -%patch43 -%patch100 -%patch102 -%patch53 %patch54 -%patch55 -%patch101 %patch113 %patch117 -%patch119 %patch121 -%patch123 ln -sf $PWD/src/inputmethod/qinputcontextfactory.h include/ ln -sf $PWD/src/inputmethod/qinputcontextplugin.h include/ ln -sf $PWD/src/kernel/qinputcontext.h include/ ln -sf $PWD/src/kernel/qinputcontextinterface_p.h include/private/ ln -sf $PWD/src/kernel/qximinputcontext_p.h include/private/ -if [ %_lib = "lib" ]; then -sed 's,/lib64/,/lib/,' %PATCH21 | patch -p0 -else -%patch21 -fi %patch125 %patch127 -%patch128 -%patch129 -%patch132 -%patch133 %patch134 %patch135 %patch136 %patch137 -%if %suse_version > 1120 -%patch138 -p1 -%endif %patch139 -# copy qt kde integration files -cp %SOURCE100 %SOURCE101 src/kernel/ -cp %SOURCE101 include/private/ +%patch140 cd translations tar xvjf %SOURCE12 cd .. @@ -214,16 +152,6 @@ This package contains the documentation for the Qt 3 Development Kit. You will find documentation, precompiled examples, and a tutorial for getting started with Qt in /usr/lib/qt3/doc. -This package contains the documentation for the Qt 3 Development Kit. - -You will find documentation, precompiled examples, and a tutorial for -getting started with Qt in /usr/lib/qt3/doc. - -This package contains the documentation for the Qt 3 Development Kit. - -You will find documentation, precompiled examples, and a tutorial for -getting started with Qt in /usr/lib/qt3/doc. - %build export VERSION=%suse_version source %SOURCE1 %{version} diff --git a/opensuse/core/qt3/qt3-devel-doc.spec.in b/opensuse/core/qt3/qt3-devel-doc.spec.in index ad9fd3e99..090675643 100644 --- a/opensuse/core/qt3/qt3-devel-doc.spec.in +++ b/opensuse/core/qt3/qt3-devel-doc.spec.in @@ -1,5 +1,5 @@ # -# spec file for package qt3 (Version 3.3.8b) +# spec file for package qt3 (Version 3.3.8d) # # Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -22,15 +22,13 @@ License: GPL, QPL Autoreqprov: on Summary: Qt 3 Development Kit Group: Documentation/HTML -Version: 3.3.8c +Version: 3.3.8d Release: 1 PreReq: /bin/grep BuildArch: noarch Provides: qt3-devel-tutorial Obsoletes: qt3-devel-tutorial Requires: qt3-devel -%define x11_free -x11-free- -%define rversion %version # COMMON-BEGIN # COMMON-END diff --git a/opensuse/core/qt3/qt3-extensions.changes b/opensuse/core/qt3/qt3-extensions.changes index db0df1efa..bffb1fdc2 100644 --- a/opensuse/core/qt3/qt3-extensions.changes +++ b/opensuse/core/qt3/qt3-extensions.changes @@ -1,4 +1,23 @@ ------------------------------------------------------------------- +Sat Nov 19 23:23:57 UTC 2011 - andrea@nucleus.it + +- Removed all the patches already applied in the 3.3.8d tree. +- Modified all the remaining to apply with fuzz=0. +- Created a new patch to revert the use of libiodbc to libodbc + otherwise qt3-unixODBC does not build. +- Some cosmetic change to the specfiles. + +------------------------------------------------------------------- +Sun Nov 13 22:40:37 UTC 2011 - robxu9@gmail.com + +- Remove 0001-dnd_optimization.patch; upstream + +------------------------------------------------------------------- +Sun Nov 13 16:28:34 UTC 2011 - robxu9@gmail.com + +- Qt3 has a new upstream; update to 3.3.8d + +------------------------------------------------------------------- Fri Sep 23 10:16:33 UTC 2011 - coolo@suse.com - fix qt3-extensions diff --git a/opensuse/core/qt3/qt3-extensions.spec b/opensuse/core/qt3/qt3-extensions.spec index 969cc4da2..d44f8c188 100644 --- a/opensuse/core/qt3/qt3-extensions.spec +++ b/opensuse/core/qt3/qt3-extensions.spec @@ -32,8 +32,6 @@ Group: Development/Tools/Other Summary: Qt3 Extensions # COMMON-BEGIN # COMMON-BEGIN -%define x11_free -x11-free- -%define rversion 3.3.8b Source0: http://mirror.its.uidaho.edu/pub/trinity/releases/3.5.13/dependencies/qt3-3.3.8.d.tar.gz Source1: build_script.sh Source2: qtconfig3.desktop @@ -48,8 +46,6 @@ Source10: qt3.sh Source11: qt3.csh # Translations did not change at 3.3.8d Source12: qt3-3.3.8b-translations.tar.bz2 -Source100: qtkdeintegration_x11.cpp -Source101: qtkdeintegration_x11_p.h Source102: baselibs.conf Source200: attributes Source201: update_spec.pl @@ -62,43 +58,24 @@ Patch14: lib64-plugin-support.diff Patch15: pluginmanager-fix.diff Patch18: no-rpath.dif Patch19: shut-up.diff -Patch21: fix-GL-loading.diff Patch23: fix-accessible.diff -Patch28: fix-key-release-event-with-imm.diff Patch31: limit-image-size.diff -Patch34: 0005-qpixmap_mitshm.patch Patch35: qt-transparency.patch Patch37: 0055-qtextedit_zoom.patch -Patch38: 0048-qclipboard_hack_80072.patch Patch39: fix-qtranslator-crash.diff -Patch40: 0059-qpopup_has_mouse.patch -Patch41: 0060-qpopup_ignore_mousepos.patch Patch42: add_qexport_visibility.patch -Patch43: 0056-khotkeys_input_84434.patch -Source250: enable-designer-plugins.diff -Patch53: fix-xinerama-dialog-placement.diff Patch54: kmenu-search-fix.diff -Patch55: qt3-fix-cast.diff -Patch100: qt.patch -Patch101: qt3-arm-gcc4.patch -Patch102: xinerama.patch Patch113: fix-assistant-path.patch Patch117: qtimer-debug.diff -Patch119: xinerama-qpopupmenu.diff Patch121: qt3-warnings.diff -Patch123: use-xrandr-1.2.diff Patch125: qcstring-format-warnings.diff Patch127: mng-reading-fix.patch -Patch128: 0079-compositing-types.patch -Patch129: 0080-net-wm-sync-request.patch -Patch132: revert-qt-3.3.8-khmer-fix.diff -Patch133: 0085-fix-buildkey.diff Patch134: fix-xinput-clash.diff Patch135: parseFontName.diff Patch136: qt3-no-date.diff Patch137: popen-leak-fix.diff -Patch138: qt3-libpng14.diff Patch139: gcc46.diff +Patch140: revert-iodbc-to-uodbc.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -106,6 +83,9 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build This package contains extension libraries for Qt 3, such as the Netscape plug-in modules. +This package contains extension libraries for Qt 3, such as the +Netscape plug-in modules. + %define build_sub_dirs src plugins/src tools/designer/uilib/ tools/designer/uic tools/qtconfig tools/assistant/lib tools/assistant tutorial %prep @@ -122,55 +102,28 @@ fi %patch18 %patch19 %patch23 -#%patch28 %patch31 -%patch34 %patch35 %patch37 -%patch38 %patch39 -%patch40 -%patch41 %patch42 -%patch43 -%patch100 -%patch102 -%patch53 %patch54 -%patch55 -%patch101 %patch113 %patch117 -%patch119 %patch121 -%patch123 ln -sf $PWD/src/inputmethod/qinputcontextfactory.h include/ ln -sf $PWD/src/inputmethod/qinputcontextplugin.h include/ ln -sf $PWD/src/kernel/qinputcontext.h include/ ln -sf $PWD/src/kernel/qinputcontextinterface_p.h include/private/ ln -sf $PWD/src/kernel/qximinputcontext_p.h include/private/ -if [ %_lib = "lib" ]; then -sed 's,/lib64/,/lib/,' %PATCH21 | patch -p0 -else -%patch21 -fi %patch125 %patch127 -%patch128 -%patch129 -%patch132 -%patch133 %patch134 %patch135 %patch136 %patch137 -%if %suse_version > 1120 -%patch138 -p1 -%endif %patch139 -# copy qt kde integration files -cp %SOURCE100 %SOURCE101 src/kernel/ -cp %SOURCE101 include/private/ +%patch140 cd translations tar xvjf %SOURCE12 cd .. @@ -184,12 +137,6 @@ Netscape plug-in modules. This package contains extension libraries for Qt 3, such as the Netscape plug-in modules. -This package contains extension libraries for Qt 3, such as the -Netscape plug-in modules. - -This package contains extension libraries for Qt 3, such as the -Netscape plug-in modules. - %package -n qt3-devel-examples Summary: Programming Examples for Qt 3 AutoReqProv: on @@ -415,6 +362,8 @@ rm -rf ${RPM_BUILD_ROOT} %defattr(-,root,root) #/usr/bin/designer #/usr/bin/linguist +/usr/lib/qt3/bin/createcw +/usr/lib/qt3/bin/makeqpf /usr/lib/qt3/bin/qconfig /usr/lib/qt3/bin/findtr /usr/lib/qt3/bin/qt20fix diff --git a/opensuse/core/qt3/qt3-extensions.spec.in b/opensuse/core/qt3/qt3-extensions.spec.in index e1014767a..736f1ae2b 100644 --- a/opensuse/core/qt3/qt3-extensions.spec.in +++ b/opensuse/core/qt3/qt3-extensions.spec.in @@ -1,5 +1,5 @@ # -# spec file for package qt3-extensions (Version 3.3.8b) +# spec file for package qt3-extensions (Version 3.3.8d) # # Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -16,7 +16,7 @@ BuildRequires: cups-devel krb5-devel mysql-devel postgresql-devel qt3-devel sqli BuildRequires: fdupes %endif License: GPL, QPL -Version: 3.3.8c +Version: 3.3.8d Release: 1 Autoreqprov: on Requires: qt3 = %version @@ -325,6 +325,8 @@ rm -rf ${RPM_BUILD_ROOT} %defattr(-,root,root) #/usr/bin/designer #/usr/bin/linguist +/usr/lib/qt3/bin/createcw +/usr/lib/qt3/bin/makeqpf /usr/lib/qt3/bin/qconfig /usr/lib/qt3/bin/findtr /usr/lib/qt3/bin/qt20fix diff --git a/opensuse/core/qt3/qt3-fix-cast.diff b/opensuse/core/qt3/qt3-fix-cast.diff deleted file mode 100644 index 5ad34108b..000000000 --- a/opensuse/core/qt3/qt3-fix-cast.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: tools/qvfb/qvfbview.cpp -================================================================================ ---- tools/qvfb/qvfbview.cpp -+++ tools/qvfb/qvfbview.cpp -@@ -115,7 +115,7 @@ - data = (unsigned char *)shmat( shmId, 0, 0 ); - } - -- if ( (int)data == -1 ) -+ if ( (long)data == -1 ) - qFatal( "Cannot attach to shared memory" ); - - hdr = (QVFbHeader *)data; diff --git a/opensuse/core/qt3/qt3-libpng14.diff b/opensuse/core/qt3/qt3-libpng14.diff deleted file mode 100644 index 8df6929fa..000000000 --- a/opensuse/core/qt3/qt3-libpng14.diff +++ /dev/null @@ -1,22 +0,0 @@ -Index: qt-x11-free-3.3.8b/src/kernel/qpngio.cpp -=================================================================== ---- qt-x11-free-3.3.8b.orig/src/kernel/qpngio.cpp -+++ qt-x11-free-3.3.8b/src/kernel/qpngio.cpp -@@ -162,7 +162,7 @@ void setup_qt( QImage& image, png_struct - image.setColor( i, qRgba(c,c,c,0xff) ); - } - if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) { -- const int g = info_ptr->trans_values.gray; -+ const int g = info_ptr->trans_color.gray; - if (g < ncols) { - image.setAlphaBuffer(TRUE); - image.setColor(g, image.color(g) & RGB_MASK); -@@ -190,7 +190,7 @@ void setup_qt( QImage& image, png_struct - info_ptr->palette[i].red, - info_ptr->palette[i].green, - info_ptr->palette[i].blue, -- info_ptr->trans[i] -+ info_ptr->trans_alpha[i] - ) - ); - i++; diff --git a/opensuse/core/qt3/qt3-never-strip.diff b/opensuse/core/qt3/qt3-never-strip.diff index 86e09c1ef..da38a015b 100644 --- a/opensuse/core/qt3/qt3-never-strip.diff +++ b/opensuse/core/qt3/qt3-never-strip.diff @@ -1,6 +1,6 @@ --- qmake/generators/unix/unixmake.cpp +++ qmake/generators/unix/unixmake.cpp -@@ -836,7 +836,7 @@ +@@ -839,7 +839,7 @@ ret += "\n\t"; ret += QString(resource ? "-$(INSTALL_DIR)" : "-$(INSTALL_FILE)") + " \"" + src_targ + "\" \"" + dst_targ + "\""; diff --git a/opensuse/core/qt3/qt3-warnings.diff b/opensuse/core/qt3/qt3-warnings.diff index 870017ded..a67293de3 100644 --- a/opensuse/core/qt3/qt3-warnings.diff +++ b/opensuse/core/qt3/qt3-warnings.diff @@ -2,7 +2,7 @@ Index: src/kernel/qimage.h =================================================================== --- src/kernel/qimage.h (revision 594273) +++ src/kernel/qimage.h (working copy) -@@ -55,7 +55,7 @@ public: +@@ -58,7 +58,7 @@ public: QCString lang; bool operator< (const QImageTextKeyLang& other) const diff --git a/opensuse/core/qt3/qt3.changes b/opensuse/core/qt3/qt3.changes index 72551ce1c..bffb1fdc2 100644 --- a/opensuse/core/qt3/qt3.changes +++ b/opensuse/core/qt3/qt3.changes @@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Sat Nov 19 23:23:57 UTC 2011 - andrea@nucleus.it + +- Removed all the patches already applied in the 3.3.8d tree. +- Modified all the remaining to apply with fuzz=0. +- Created a new patch to revert the use of libiodbc to libodbc + otherwise qt3-unixODBC does not build. +- Some cosmetic change to the specfiles. + +------------------------------------------------------------------- Sun Nov 13 22:40:37 UTC 2011 - robxu9@gmail.com - Remove 0001-dnd_optimization.patch; upstream diff --git a/opensuse/core/qt3/qt3.spec b/opensuse/core/qt3/qt3.spec index 0c6df00cd..ffc2a9e61 100644 --- a/opensuse/core/qt3/qt3.spec +++ b/opensuse/core/qt3/qt3.spec @@ -40,8 +40,6 @@ Provides: qt_library_%version Recommends: kdelibs3-default-style PreReq: /bin/grep # COMMON-BEGIN -%define x11_free -x11-free- -%define rversion 3.3.8b Source0: http://mirror.its.uidaho.edu/pub/trinity/releases/3.5.13/dependencies/qt3-3.3.8.d.tar.gz Source1: build_script.sh Source2: qtconfig3.desktop @@ -54,10 +52,8 @@ Source9: linguist.desktop Source5: linguist.png Source10: qt3.sh Source11: qt3.csh -# Translations did not change at 3.3.8c +# Translations did not change at 3.3.8d Source12: qt3-3.3.8b-translations.tar.bz2 -Source100: qtkdeintegration_x11.cpp -Source101: qtkdeintegration_x11_p.h Source102: baselibs.conf Source200: attributes Source201: update_spec.pl @@ -70,43 +66,24 @@ Patch14: lib64-plugin-support.diff Patch15: pluginmanager-fix.diff Patch18: no-rpath.dif Patch19: shut-up.diff -Patch21: fix-GL-loading.diff Patch23: fix-accessible.diff -Patch28: fix-key-release-event-with-imm.diff Patch31: limit-image-size.diff -Patch34: 0005-qpixmap_mitshm.patch Patch35: qt-transparency.patch Patch37: 0055-qtextedit_zoom.patch -Patch38: 0048-qclipboard_hack_80072.patch Patch39: fix-qtranslator-crash.diff -Patch40: 0059-qpopup_has_mouse.patch -Patch41: 0060-qpopup_ignore_mousepos.patch Patch42: add_qexport_visibility.patch -Patch43: 0056-khotkeys_input_84434.patch -Source250: enable-designer-plugins.diff -Patch53: fix-xinerama-dialog-placement.diff Patch54: kmenu-search-fix.diff -Patch55: qt3-fix-cast.diff -Patch100: qt.patch -Patch101: qt3-arm-gcc4.patch -Patch102: xinerama.patch Patch113: fix-assistant-path.patch Patch117: qtimer-debug.diff -Patch119: xinerama-qpopupmenu.diff Patch121: qt3-warnings.diff -Patch123: use-xrandr-1.2.diff Patch125: qcstring-format-warnings.diff Patch127: mng-reading-fix.patch -Patch128: 0079-compositing-types.patch -Patch129: 0080-net-wm-sync-request.patch -Patch132: revert-qt-3.3.8-khmer-fix.diff -Patch133: 0085-fix-buildkey.diff Patch134: fix-xinput-clash.diff Patch135: parseFontName.diff Patch136: qt3-no-date.diff Patch137: popen-leak-fix.diff -Patch138: qt3-libpng14.diff Patch139: gcc46.diff +Patch140: revert-iodbc-to-uodbc.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -139,55 +116,28 @@ fi %patch18 %patch19 %patch23 -#%patch28 %patch31 -%patch34 %patch35 %patch37 -%patch38 %patch39 -%patch40 -%patch41 %patch42 -%patch43 -%patch100 -%patch102 -%patch53 %patch54 -%patch55 -%patch101 %patch113 %patch117 -%patch119 %patch121 -%patch123 ln -sf $PWD/src/inputmethod/qinputcontextfactory.h include/ ln -sf $PWD/src/inputmethod/qinputcontextplugin.h include/ ln -sf $PWD/src/kernel/qinputcontext.h include/ ln -sf $PWD/src/kernel/qinputcontextinterface_p.h include/private/ ln -sf $PWD/src/kernel/qximinputcontext_p.h include/private/ -if [ %_lib = "lib" ]; then -sed 's,/lib64/,/lib/,' %PATCH21 | patch -p0 -else -%patch21 -fi %patch125 %patch127 -%patch128 -%patch129 -%patch132 -%patch133 %patch134 %patch135 %patch136 %patch137 -%if %suse_version > 1120 -%patch138 -p1 -%endif %patch139 -# copy qt kde integration files -cp %SOURCE100 %SOURCE101 src/kernel/ -cp %SOURCE101 include/private/ +%patch140 cd translations tar xvjf %SOURCE12 cd .. @@ -337,7 +287,7 @@ fi %files %defattr(-,root,root,755) # FIXME provide new changelog if kb9vqf will give one -%doc changes-3.3.8b README* LICENSE* MANIFEST FAQ +%doc changes-3.3.8d README* LICENSE* MANIFEST FAQ %dir /usr/lib/qt3/translations %dir /usr/lib/qt3 %dir /usr/lib/qt3/bin diff --git a/opensuse/core/qt3/qtimer-debug.diff b/opensuse/core/qt3/qtimer-debug.diff index 5511f2a16..65db5f4f6 100644 --- a/opensuse/core/qt3/qtimer-debug.diff +++ b/opensuse/core/qt3/qtimer-debug.diff @@ -1,6 +1,6 @@ --- src/kernel/qeventloop_unix.cpp +++ src/kernel/qeventloop_unix.cpp -@@ -514,6 +528,17 @@ +@@ -517,6 +531,17 @@ return (tm->tv_sec*1000) + (tm->tv_usec/1000); } @@ -18,7 +18,7 @@ int QEventLoop::activateTimers() { if ( !timerList || !timerList->count() ) // no timers -@@ -549,9 +574,27 @@ +@@ -552,9 +577,27 @@ t->timeout += t->interval; if ( t->timeout < currentTime ) t->timeout = currentTime + t->interval; diff --git a/opensuse/core/qt3/qtkdeintegration_x11.cpp b/opensuse/core/qt3/qtkdeintegration_x11.cpp deleted file mode 100644 index 8f837b412..000000000 --- a/opensuse/core/qt3/qtkdeintegration_x11.cpp +++ /dev/null @@ -1,242 +0,0 @@ -#define QT_CLEAN_NAMESPACE -#include "qtkdeintegration_x11_p.h" - -#include <qcolordialog.h> -#include <qfiledialog.h> -#include <qfontdialog.h> -#include <qlibrary.h> -#include <qregexp.h> -#include <qmessagebox.h> -#include <stdlib.h> - -bool QKDEIntegration::inited = false; -bool QKDEIntegration::enable = false; - -bool QKDEIntegration::enabled() - { - if( !inited ) - initLibrary(); - return enable; - } - -static QCString findLibrary() - { - if( getenv( "QT_NO_KDE_INTEGRATION" ) == NULL - || getenv( "QT_NO_KDE_INTEGRATION" )[ 0 ] == '0' ) - { -#ifdef USE_LIB64_PATHES - return "/opt/kde3/lib64/kde3/plugins/integration/libqtkde"; -#else - return "/opt/kde3/lib/kde3/plugins/integration/libqtkde"; -#endif - } - return ""; - } - -inline static long widgetToWinId( const QWidget* w ) - { - return w != NULL ? w->winId() : 0; - } - -inline static QFont fontPtrToFontRef( const QFont* f ) - { - return f != NULL ? *f : QFont(); - } - -// --- -static bool (*qtkde_initializeIntegration)( ); -static QStringList (*qtkde_getOpenFileNames)( const QString& filter, QString* workingDirectory, - long parent, const QCString& name, const QString& caption, QString* selectedFilter, - bool multiple ); -static QString (*qtkde_getSaveFileName)( const QString& initialSelection, const QString& filter, - QString* workingDirectory, long parent, const QCString& name, const QString& caption, - QString* selectedFilter ); -static QString (*qtkde_getExistingDirectory)( const QString& initialDirectory, long parent, - const QCString& name, const QString& caption ); -static QColor (*qtkde_getColor)( const QColor& color, long parent, const QCString& name ); -static QFont (*qtkde_getFont)( bool* ok, const QFont& def, long parent, const QCString& name ); -static int (*qtkde_messageBox1)( int type, long parent, const QString& caption, const QString& text, - int button0, int button1, int button2 ); -static int (*qtkde_messageBox2)( int type, long parent, const QString& caption, const QString& text, - const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ); - -void QKDEIntegration::initLibrary() - { - if( !inited ) - { - enable = false; - inited = true; - QString libpath = findLibrary(); - if( libpath.isEmpty()) - return; - QLibrary lib( libpath ); - lib.setAutoUnload( false ); - qtkde_initializeIntegration = ( - bool (*)( ) - ) - lib.resolve("initializeIntegration"); - if( qtkde_initializeIntegration == NULL ) - return; - qtkde_getOpenFileNames = ( - QStringList (*)( const QString& filter, QString* workingDirectory, long parent, - const QCString& name, const QString& caption, QString* selectedFilter, - bool multiple ) - ) - lib.resolve("getOpenFileNames"); - if( qtkde_getOpenFileNames == NULL ) - return; - qtkde_getSaveFileName = ( - QString (*)( const QString& initialSelection, const QString& filter, QString* workingDirectory, - long parent, const QCString& name, const QString& caption, QString* selectedFilter ) - ) - lib.resolve("getSaveFileName"); - if( qtkde_getSaveFileName == NULL ) - return; - qtkde_getExistingDirectory = ( - QString (*)( const QString& initialDirectory, long parent, const QCString& name, - const QString& caption ) - ) - lib.resolve("getExistingDirectory"); - if( qtkde_getExistingDirectory == NULL ) - return; - qtkde_getColor = ( - QColor (*)( const QColor& color, long parent, const QCString& name ) - ) - lib.resolve("getColor"); - if( qtkde_getColor == NULL ) - return; - qtkde_getFont = ( - QFont (*)( bool* ok, const QFont& def, long parent, const QCString& name ) - ) - lib.resolve("getFont"); - if( qtkde_getFont == NULL ) - return; - qtkde_messageBox1 = ( - int (*)( int type, long parent, const QString& caption, const QString& text, - int button0, int button1, int button2 ) - ) - lib.resolve("messageBox1"); - if( qtkde_messageBox1 == NULL ) - return; - qtkde_messageBox2 = ( - int (*)( int type, long parent, const QString& caption, const QString& text, - const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ) - ) - lib.resolve("messageBox2"); - if( qtkde_messageBox2 == NULL ) - return; - enable = qtkde_initializeIntegration(); - } - } - -bool QKDEIntegration::initializeIntegration( ) - { - return qtkde_initializeIntegration( - ); - } -QStringList QKDEIntegration::getOpenFileNames( const QString& filter, QString* workingDirectory, - QWidget* parent, const char* name, const QString& caption, QString* selectedFilter, - bool multiple ) - { - return qtkde_getOpenFileNames( - filter, workingDirectory, widgetToWinId( parent ), name, caption, selectedFilter, multiple ); - } -QString QKDEIntegration::getSaveFileName( const QString& initialSelection, const QString& filter, - QString* workingDirectory, QWidget* parent, const char* name, const QString& caption, - QString* selectedFilter ) - { - return qtkde_getSaveFileName( - initialSelection, filter, workingDirectory, widgetToWinId( parent ), name, caption, selectedFilter ); - } -QString QKDEIntegration::getExistingDirectory( const QString& initialDirectory, QWidget* parent, - const char* name, const QString& caption ) - { - return qtkde_getExistingDirectory( - initialDirectory, widgetToWinId( parent ), name, caption ); - } -QColor QKDEIntegration::getColor( const QColor& color, QWidget* parent, const char* name ) - { - return qtkde_getColor( - color, widgetToWinId( parent ), name ); - } -QFont QKDEIntegration::getFont( bool* ok, const QFont* def, QWidget* parent, const char* name ) - { - return qtkde_getFont( - ok, fontPtrToFontRef( def ), widgetToWinId( parent ), name ); - } -int QKDEIntegration::messageBox1( int type, QWidget* parent, const QString& caption, - const QString& text, int button0, int button1, int button2 ) - { - return qtkde_messageBox1( - type, widgetToWinId( parent ), caption, text, button0, button1, button2 ); - } -int QKDEIntegration::messageBox2( int type, QWidget* parent, const QString& caption, - const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ) - { - return qtkde_messageBox2( - type, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton ); - } -// --- - -int QKDEIntegration::information( QWidget* parent, const QString& caption, - const QString& text, int button0, int button1, int button2 ) - { - return qtkde_messageBox1( - QMessageBox::Information, widgetToWinId( parent ), caption, text, button0, button1, button2 ); - } - -int QKDEIntegration::question( QWidget* parent, const QString& caption, - const QString& text, int button0, int button1, int button2 ) - { - return qtkde_messageBox1( - QMessageBox::Question, widgetToWinId( parent ), caption, text, button0, button1, button2 ); - } - -int QKDEIntegration::warning( QWidget* parent, const QString& caption, - const QString& text, int button0, int button1, int button2 ) - { - return qtkde_messageBox1( - QMessageBox::Warning, widgetToWinId( parent ), caption, text, button0, button1, button2 ); - } - -int QKDEIntegration::critical( QWidget* parent, const QString& caption, - const QString& text, int button0, int button1, int button2 ) - { - return qtkde_messageBox1( - QMessageBox::Critical, widgetToWinId( parent ), caption, text, button0, button1, button2 ); - } - -int QKDEIntegration::information( QWidget* parent, const QString& caption, - const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ) - { - return qtkde_messageBox2( - QMessageBox::Information, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton ); - } - -int QKDEIntegration::question( QWidget* parent, const QString& caption, - const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ) - { - return qtkde_messageBox2( - QMessageBox::Question, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton ); - } - -int QKDEIntegration::warning( QWidget* parent, const QString& caption, - const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ) - { - return qtkde_messageBox2( - QMessageBox::Warning, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton ); - } - -int QKDEIntegration::critical( QWidget* parent, const QString& caption, - const QString& text, const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ) - { - return qtkde_messageBox2( - QMessageBox::Critical, widgetToWinId( parent ), caption, text, button0Text, button1Text, button2Text, defaultButton, escapeButton ); - } diff --git a/opensuse/core/qt3/qtkdeintegration_x11_p.h b/opensuse/core/qt3/qtkdeintegration_x11_p.h deleted file mode 100644 index 9c1676ddb..000000000 --- a/opensuse/core/qt3/qtkdeintegration_x11_p.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef QKDEINTEGRATION_H -#define QKDEINTEGRATION_H - -#include <qstringlist.h> - -class QLibrary; -class QWidget; -class QColor; -class QFont; - -class QKDEIntegration - { - public: - static bool enabled(); -// --- - static bool initializeIntegration( ); - static QStringList getOpenFileNames( const QString& filter, QString* workingDirectory, - QWidget* parent, const char* name, const QString& caption, QString* selectedFilter, - bool multiple ); - static QString getSaveFileName( const QString& initialSelection, const QString& filter, - QString* workingDirectory, QWidget* parent, const char* name, const QString& caption, - QString* selectedFilter ); - static QString getExistingDirectory( const QString& initialDirectory, QWidget* parent, - const char* name, const QString& caption ); - static QColor getColor( const QColor& color, QWidget* parent, const char* name ); - static QFont getFont( bool* ok, const QFont* def, QWidget* parent, const char* name ); - static int messageBox1( int type, QWidget* parent, const QString& caption, - const QString& text, int button0, int button1, int button2 ); - static int information( QWidget* parent, const QString& caption, const QString& text, - int button0, int button1, int button2 ); - static int question( QWidget* parent, const QString& caption, const QString& text, - int button0, int button1, int button2 ); - static int warning( QWidget* parent, const QString& caption, const QString& text, - int button0, int button1, int button2 ); - static int critical( QWidget* parent, const QString& caption, const QString& text, - int button0, int button1, int button2 ); - static int messageBox2( int type, QWidget* parent, const QString& caption, - const QString& text, const QString& button0Text, const QString& button1Text, - const QString& button2Text, int defaultButton, int escapeButton ); - static int information( QWidget* parent, const QString& caption, const QString& text, - const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ); - static int question( QWidget* parent, const QString& caption, const QString& text, - const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ); - static int warning( QWidget* parent, const QString& caption, const QString& text, - const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ); - static int critical( QWidget* parent, const QString& caption, const QString& text, - const QString& button0Text, const QString& button1Text, const QString& button2Text, - int defaultButton, int escapeButton ); -// --- - private: - static void initLibrary(); - static bool inited; - static bool enable; - }; - -#endif diff --git a/opensuse/core/qt3/qtrc-path.diff b/opensuse/core/qt3/qtrc-path.diff index 41830d988..3ed8a86a0 100644 --- a/opensuse/core/qt3/qtrc-path.diff +++ b/opensuse/core/qt3/qtrc-path.diff @@ -1,6 +1,6 @@ --- src/tools/qsettings.cpp +++ src/tools/qsettings.cpp -@@ -36,6 +36,7 @@ +@@ -39,6 +39,7 @@ **********************************************************************/ #include "qplatformdefs.h" @@ -8,7 +8,7 @@ // POSIX Large File Support redefines open -> open64 static inline int qt_open( const char *pathname, int flags, mode_t mode ) -@@ -465,8 +466,18 @@ +@@ -468,8 +469,18 @@ Q_UNUSED( format ); #endif @@ -29,7 +29,7 @@ #ifdef Q_WS_WIN #ifdef Q_OS_TEMP TCHAR path[MAX_PATH]; -@@ -514,6 +525,15 @@ +@@ -517,6 +528,15 @@ if ( !!defPath ) searchPaths.append(defPath); diff --git a/opensuse/core/qt3/revert-iodbc-to-uodbc.diff b/opensuse/core/qt3/revert-iodbc-to-uodbc.diff new file mode 100644 index 000000000..f7c815ef1 --- /dev/null +++ b/opensuse/core/qt3/revert-iodbc-to-uodbc.diff @@ -0,0 +1,22 @@ +--- src/sql/qt_sql.pri 2011-10-30 19:55:58.000000000 +0100 ++++ src/sql/qt_sql.pri 2008-01-15 20:09:13.000000000 +0100 +@@ -116,7 +116,7 @@ + + unix { + !contains( LIBS, .*odbc.* ) { +- LIBS *= -liodbc ++ LIBS *= -lodbc + } + } + +--- plugins/src/sqldrivers/odbc/odbc.pro 2011-10-30 19:55:57.000000000 +0100 ++++ plugins/src/sqldrivers/odbc/odbc.pro 2008-01-15 20:09:17.000000000 +0100 +@@ -17,7 +17,7 @@ + unix { + OBJECTS_DIR = .obj + !contains( LIBS, .*odbc.* ) { +- LIBS *= -liodbc ++ LIBS *= -lodbc + } + } + diff --git a/opensuse/core/qt3/shut-up.diff b/opensuse/core/qt3/shut-up.diff index 6191c5d93..498b25b62 100644 --- a/opensuse/core/qt3/shut-up.diff +++ b/opensuse/core/qt3/shut-up.diff @@ -1,6 +1,6 @@ --- src/kernel/qpixmap_x11.cpp +++ src/kernel/qpixmap_x11.cpp -@@ -288,8 +288,9 @@ +@@ -394,8 +394,9 @@ { #if defined(QT_CHECK_STATE) if ( qApp->type() == QApplication::Tty ) { @@ -14,7 +14,7 @@ --- src/tools/qcomlibrary.cpp +++ src/tools/qcomlibrary.cpp -@@ -102,25 +102,11 @@ +@@ -105,25 +105,11 @@ (const char*) QFile::encodeName(library) ); } else if ( ( version > QT_VERSION ) || ( ( QT_VERSION & 0xff0000 ) > ( version & 0xff0000 ) ) ) { diff --git a/opensuse/core/qt3/use-xrandr-1.2.diff b/opensuse/core/qt3/use-xrandr-1.2.diff deleted file mode 100644 index 4ec4174e7..000000000 --- a/opensuse/core/qt3/use-xrandr-1.2.diff +++ /dev/null @@ -1,106 +0,0 @@ -qt-bugs@ issue : -bugs.kde.org number : -applied: no -author: Dirk Mueller <mueller@kde.org> - -support xrandr 1.2 configurations. same patch like for trunk qt-copy, -please see there for details. - - ---- src/kernel/qdesktopwidget_x11.cpp -+++ src/kernel/qdesktopwidget_x11.cpp -@@ -107,7 +107,7 @@ QDesktopWidgetPrivate::~QDesktopWidgetPr - screens[i] = 0; - } - -- delete [] screens; -+ free(screens); - } - - if ( rects ) delete [] rects; -@@ -119,30 +119,33 @@ void QDesktopWidgetPrivate::init() - // get the screen count - #ifndef QT_NO_XINERAMA - XineramaScreenInfo *xinerama_screeninfo = 0; -- int unused; -+ int unused, newScreenCount; - use_xinerama = (XineramaQueryExtension(QPaintDevice::x11AppDisplay(), - &unused, &unused) && - XineramaIsActive(QPaintDevice::x11AppDisplay())); - - if (use_xinerama) { - xinerama_screeninfo = -- XineramaQueryScreens(QPaintDevice::x11AppDisplay(), &screenCount); -+ XineramaQueryScreens(QPaintDevice::x11AppDisplay(), &newScreenCount); -+ -+ if (xinerama_screeninfo) - defaultScreen = 0; - } else - #endif // QT_NO_XINERAMA - { - defaultScreen = DefaultScreen(QPaintDevice::x11AppDisplay()); -- screenCount = ScreenCount(QPaintDevice::x11AppDisplay()); -+ newScreenCount = ScreenCount(QPaintDevice::x11AppDisplay()); -+ use_xinerama = false; - } - - delete [] rects; -- rects = new QRect[ screenCount ]; -+ rects = new QRect[ newScreenCount ]; - delete [] workareas; -- workareas = new QRect[ screenCount ]; -+ workareas = new QRect[ newScreenCount ]; - - // get the geometry of each screen -- int i, x, y, w, h; -- for ( i = 0; i < screenCount; i++ ) { -+ int i, j, x, y, w, h; -+ for ( i = 0, j = 0; i < newScreenCount; i++ ) { - - #ifndef QT_NO_XINERAMA - if (use_xinerama) { -@@ -159,11 +162,33 @@ void QDesktopWidgetPrivate::init() - h = HeightOfScreen(ScreenOfDisplay(QPaintDevice::x11AppDisplay(), i)); - } - -- rects[i].setRect(x, y, w, h); - workareas[i] = QRect(); -+ rects[j].setRect(x, y, w, h); -+ -+ // overlapping? -+ if (j > 0 && rects[j-1].intersects(rects[j])) { -+ // pick the bigger one, ignore the other -+ if ((rects[j].width()*rects[j].height()) > -+ (rects[j-1].width()*rects[j-1].height())) -+ rects[j-1] = rects[j]; -+ } -+ else -+ j++; - } - -+ if (screens) { -+ // leaks QWidget* pointers on purpose, can't delete them as pointer escapes -+ screens = (QWidget**) realloc(screens, j * sizeof(QWidget*)); -+ if (j > screenCount) -+ memset(&screens[screenCount], 0, (j-screenCount) * sizeof(QWidget*)); -+ } -+ -+ screenCount = j; -+ - #ifndef QT_NO_XINERAMA -+ if (use_xinerama && screenCount == 1) -+ use_xinerama = false; -+ - if (xinerama_screeninfo) - XFree(xinerama_screeninfo); - #endif // QT_NO_XINERAMA -@@ -216,8 +241,7 @@ QWidget *QDesktopWidget::screen( int scr - screen = d->defaultScreen; - - if ( ! d->screens ) { -- d->screens = new QWidget*[ d->screenCount ]; -- memset( d->screens, 0, d->screenCount * sizeof( QWidget * ) ); -+ d->screens = (QWidget**) calloc( d->screenCount, sizeof(QWidget*)); - d->screens[ d->defaultScreen ] = this; - } - diff --git a/opensuse/core/qt3/xinerama-qpopupmenu.diff b/opensuse/core/qt3/xinerama-qpopupmenu.diff deleted file mode 100644 index 07927206f..000000000 --- a/opensuse/core/qt3/xinerama-qpopupmenu.diff +++ /dev/null @@ -1,104 +0,0 @@ ---- src/widgets/qpopupmenu.cpp.sav -+++ src/widgets/qpopupmenu.cpp -@@ -457,6 +457,15 @@ - menuContentsChanged(); - } - -+QRect QPopupMenu::screenRect( const QPoint& pos ) -+{ -+ int screen_num = QApplication::desktop()->screenNumber( pos ); -+#ifdef Q_WS_MAC -+ return QApplication::desktop()->availableGeometry( screen_num ); -+#else -+ return QApplication::desktop()->screenGeometry( screen_num ); -+#endif -+} - /*! - Displays the popup menu so that the item number \a indexAtPoint - will be at the specified \e global position \a pos. To translate a -@@ -501,6 +510,15 @@ - // point. - #endif - -+ QRect screen = screenRect( geometry().center()); -+ QRect screen2 = screenRect( QApplication::reverseLayout() -+ ? pos+QPoint(width(),0) : pos ); -+ // if the widget is not in the screen given by the position, move it -+ // there, so that updateSize() uses the right size of the screen -+ if( screen != screen2 ) { -+ screen = screen2; -+ move( screen.x(), screen.y()); -+ } - if(d->scroll.scrollable) { - d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone; - d->scroll.topScrollableIndex = d->scroll.scrollableSize = 0; -@@ -520,18 +538,6 @@ - updateSize(TRUE); - } - -- int screen_num; -- if (QApplication::desktop()->isVirtualDesktop()) -- screen_num = -- QApplication::desktop()->screenNumber( QApplication::reverseLayout() ? -- pos+QPoint(width(),0) : pos ); -- else -- screen_num = QApplication::desktop()->screenNumber( this ); --#ifdef Q_WS_MAC -- QRect screen = QApplication::desktop()->availableGeometry( screen_num ); --#else -- QRect screen = QApplication::desktop()->screenGeometry( screen_num ); --#endif - int sw = screen.width(); // screen width - int sh = screen.height(); // screen height - int sx = screen.x(); // screen pos -@@ -1059,7 +1065,7 @@ - mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 4 ); - } - -- int dh = QApplication::desktop()->height(); -+ int dh = screenRect( geometry().center()).height(); - ncols = 1; - - for ( QMenuItemListIt it2( *mitems ); it2.current(); ++it2 ) { -@@ -2313,9 +2319,9 @@ - bool right = FALSE; - if ( ( parentMenu && parentMenu->isPopupMenu && - ((QPopupMenu*)parentMenu)->geometry().x() < geometry().x() ) || -- p.x() < 0 ) -+ p.x() < screenRect( p ).left()) - right = TRUE; -- if ( right && (ps.width() > QApplication::desktop()->width() - mapToGlobal( r.topRight() ).x() ) ) -+ if ( right && (ps.width() > screenRect( p ).right() - mapToGlobal( r.topRight() ).x() ) ) - right = FALSE; - if ( right ) - p.setX( mapToGlobal( r.topRight() ).x() ); -@@ -2326,7 +2332,7 @@ - bool left = FALSE; - if ( ( parentMenu && parentMenu->isPopupMenu && - ((QPopupMenu*)parentMenu)->geometry().x() > geometry().x() ) || -- p.x() + ps.width() > QApplication::desktop()->width() ) -+ p.x() + ps.width() > screenRect( p ).right() ) - left = TRUE; - if ( left && (ps.width() > mapToGlobal( r.topLeft() ).x() ) ) - left = FALSE; -@@ -2334,8 +2340,8 @@ - p.setX( mapToGlobal( r.topLeft() ).x() - ps.width() ); - } - QRect pr = popup->itemGeometry(popup->count() - 1); -- if (p.y() + ps.height() > QApplication::desktop()->height() && -- p.y() - ps.height() + (QCOORD) pr.height() >= 0) -+ if (p.y() + ps.height() > screenRect( p ).bottom() && -+ p.y() - ps.height() + (QCOORD) pr.height() >= screenRect( p ).top()) - p.setY( p.y() - ps.height() + (QCOORD) pr.height()); - - if ( style().styleHint(QStyle::SH_PopupMenu_SloppySubMenus, this )) { ---- src/widgets/qpopupmenu.h.sav -+++ src/widgets/qpopupmenu.h -@@ -152,6 +152,7 @@ - - QSize updateSize(bool force_recalc=FALSE, bool do_resize=TRUE); - void updateRow( int row ); -+ QRect screenRect(const QPoint& pos); - #ifndef QT_NO_ACCEL - void updateAccel( QWidget * ); - void enableAccel( bool ); diff --git a/opensuse/core/qt3/xinerama.patch b/opensuse/core/qt3/xinerama.patch deleted file mode 100644 index 1fee04aae..000000000 --- a/opensuse/core/qt3/xinerama.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- src/dialogs/qdialog.cpp -+++ src/dialogs/qdialog.cpp -@@ -670,6 +670,11 @@ - - #if defined(Q_WS_X11) - extern "C" { int XSetTransientForHint( Display *, unsigned long, unsigned long ); } -+#include <private/qt_x11_p.h> -+#undef FocusIn -+// defined in qapplication_x11.cpp -+extern Atom qt_net_wm_full_placement; -+extern bool qt_net_supports(Atom atom); - #endif // Q_WS_X11 - - /*! -@@ -691,10 +696,12 @@ - - if ( !did_resize ) - adjustSize(); -- if ( has_relpos && !did_move ) { -- adjustPositionInternal( parentWidget(), TRUE ); -- } else if ( !did_move ) { -- adjustPositionInternal( parentWidget() ); -+ if( !qt_net_supports( qt_net_wm_full_placement )) { -+ if ( has_relpos && !did_move ) { -+ adjustPositionInternal( parentWidget(), TRUE ); -+ } else if ( !did_move ) { -+ adjustPositionInternal( parentWidget() ); -+ } - } - - if (windowState() != state) ---- src/kernel/qapplication_x11.cpp -+++ src/kernel/qapplication_x11.cpp -@@ -273,6 +273,7 @@ - Atom qt_net_wm_state_stays_on_top = 0; // KDE extension - Atom qt_net_wm_pid = 0; - Atom qt_net_wm_user_time = 0; -+Atom qt_net_wm_full_placement = 0; // KDE extension - // Enlightenment support - Atom qt_enlightenment_desktop = 0; - -@@ -1989,6 +1990,7 @@ - &qt_net_wm_state_stays_on_top ); - qt_x11_intern_atom( "_NET_WM_PID", &qt_net_wm_pid ); - qt_x11_intern_atom( "_NET_WM_USER_TIME", &qt_net_wm_user_time ); -+ qt_x11_intern_atom( "_NET_WM_FULL_PLACEMENT", &qt_net_wm_full_placement ); - qt_x11_intern_atom( "ENLIGHTENMENT_DESKTOP", &qt_enlightenment_desktop ); - qt_x11_intern_atom( "_NET_WM_NAME", &qt_net_wm_name ); - qt_x11_intern_atom( "_NET_WM_ICON_NAME", &qt_net_wm_icon_name ); |