summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaleb Tennis <caleb@gentoo.org>2004-02-11 18:21:17 +0000
committerCaleb Tennis <caleb@gentoo.org>2004-02-11 18:21:17 +0000
commit028a21df58b68b853344b18e4999febecff1839d (patch)
tree2997c998963569ca2cf9903eb6c7aa4fdacd07a1 /x11-libs
parentadding workaround to compile. closes 37839. (diff)
downloadgentoo-2-028a21df58b68b853344b18e4999febecff1839d.tar.gz
gentoo-2-028a21df58b68b853344b18e4999febecff1839d.tar.bz2
gentoo-2-028a21df58b68b853344b18e4999febecff1839d.zip
Clean up old builds and patches
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/qt/ChangeLog21
-rw-r--r--x11-libs/qt/files/0001-dnd_optimization.patch187
-rw-r--r--x11-libs/qt/files/0002-dnd_active_window_fix.patch189
-rw-r--r--x11-libs/qt/files/0003-qmenubar_fitts_law.patch29
-rw-r--r--x11-libs/qt/files/0004-qiconview_etc_ctrl_selecting.patch46
-rw-r--r--x11-libs/qt/files/0009-window_group.patch91
-rw-r--r--x11-libs/qt/files/0011-listview_keys.patch62
-rw-r--r--x11-libs/qt/files/0013-qtabwidget-less_flicker.patch87
-rw-r--r--x11-libs/qt/files/0014-qiconview-autoscroll.patch50
-rw-r--r--x11-libs/qt/files/0015-qiconview-finditem.patch43
-rw-r--r--x11-libs/qt/files/0016-qiconview-rebuildcontainer.patch34
-rw-r--r--x11-libs/qt/files/0017-qiconview-ctrl_rubber.patch90
-rw-r--r--x11-libs/qt/files/0018-qlistview-paintcell.patch31
-rw-r--r--x11-libs/qt/files/0019-qlistview-adjustcolumn.patch42
-rw-r--r--x11-libs/qt/files/0020-designer-deletetabs.patch76
-rw-r--r--x11-libs/qt/files/0021-qiconview-dragalittle.patch57
-rw-r--r--x11-libs/qt/files/0022-qdragobject-hotspot.patch41
-rw-r--r--x11-libs/qt/files/0023-qstring-crash.patch35
-rw-r--r--x11-libs/qt/files/0024-fix_enter_leave_notify.patch32
-rw-r--r--x11-libs/qt/files/0026-netwm-fullscreen.patch212
-rw-r--r--x11-libs/qt/files/0027-dnd-leak.patch10
-rw-r--r--x11-libs/qt/files/0028-fix_sub_popup_crash.patch11
-rw-r--r--x11-libs/qt/files/digest-qt-3.2.11
-rw-r--r--x11-libs/qt/files/digest-qt-3.2.2-r11
-rw-r--r--x11-libs/qt/files/qt-3.2.2-crash-fix.patch18
-rw-r--r--x11-libs/qt/qt-3.2.1.ebuild176
-rw-r--r--x11-libs/qt/qt-3.2.2-r1.ebuild209
27 files changed, 20 insertions, 1861 deletions
diff --git a/x11-libs/qt/ChangeLog b/x11-libs/qt/ChangeLog
index 59cadfcacea1..1eb2928977a0 100644
--- a/x11-libs/qt/ChangeLog
+++ b/x11-libs/qt/ChangeLog
@@ -1,6 +1,25 @@
# ChangeLog for x11-libs/qt
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.118 2004/02/11 18:08:19 caleb Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/ChangeLog,v 1.119 2004/02/11 18:21:17 caleb Exp $
+
+ 11 Feb 2004; Caleb Tennis <caleb@gentoo.org> qt-3.2.1.ebuild,
+ qt-3.2.2-r1.ebuild, files/0001-dnd_optimization.patch,
+ files/0002-dnd_active_window_fix.patch, files/0003-qmenubar_fitts_law.patch,
+ files/0004-qiconview_etc_ctrl_selecting.patch,
+ files/0009-window_group.patch, files/0011-listview_keys.patch,
+ files/0013-qtabwidget-less_flicker.patch,
+ files/0014-qiconview-autoscroll.patch, files/0015-qiconview-finditem.patch,
+ files/0016-qiconview-rebuildcontainer.patch,
+ files/0017-qiconview-ctrl_rubber.patch,
+ files/0018-qlistview-paintcell.patch,
+ files/0019-qlistview-adjustcolumn.patch,
+ files/0020-designer-deletetabs.patch,
+ files/0021-qiconview-dragalittle.patch,
+ files/0022-qdragobject-hotspot.patch, files/0023-qstring-crash.patch,
+ files/0024-fix_enter_leave_notify.patch, files/0026-netwm-fullscreen.patch,
+ files/0027-dnd-leak.patch, files/0028-fix_sub_popup_crash.patch,
+ files/qt-3.2.2-crash-fix.patch:
+ Clean up old builds and patches
11 Feb 2004; Caleb Tennis <caleb@gentoo.org> qt-3.3.0.ebuild:
Make $QTBASE/etc/settings a "keepdir" instead of a "dodir" so it doesn't get
diff --git a/x11-libs/qt/files/0001-dnd_optimization.patch b/x11-libs/qt/files/0001-dnd_optimization.patch
deleted file mode 100644
index d9de28464178..000000000000
--- a/x11-libs/qt/files/0001-dnd_optimization.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-qt-bugs@ issue : 16115
-applied: no
-author: Lubos Lunak <l.lunak@kde.org>
-
-See http://lists.kde.org/?t=104388858900001&r=1&w=2
-
-
---- src/kernel/qdnd_x11.cpp.sav 2003-02-05 16:09:45.000000000 +0100
-+++ src/kernel/qdnd_x11.cpp 2003-02-07 16:14:49.000000000 +0100
-@@ -49,13 +49,15 @@
- #include "qdragobject.h"
- #include "qobjectlist.h"
- #include "qcursor.h"
-+#include "qbitmap.h"
-+#include "qpainter.h"
-
- #include "qt_x11_p.h"
-
- // conflict resolution
-
--// unused, may be used again later: const int XKeyPress = KeyPress;
--// unused, may be used again later: const int XKeyRelease = KeyRelease;
-+const int XKeyPress = KeyPress;
-+const int XKeyRelease = KeyRelease;
- #undef KeyPress
- #undef KeyRelease
-
-@@ -249,20 +251,47 @@ class QShapedPixmapWidget : public QWidg
- public:
- QShapedPixmapWidget(int screen = -1) :
- QWidget(QApplication::desktop()->screen( screen ),
-- 0, WStyle_Customize | WStyle_Tool | WStyle_NoBorder | WX11BypassWM )
-+ 0, WStyle_Customize | WStyle_Tool | WStyle_NoBorder | WX11BypassWM ), oldpmser( 0 ), oldbmser( 0 )
- {
- }
-
-- void setPixmap(QPixmap pm)
-+ void setPixmap(QPixmap pm, QPoint hot)
- {
-- if ( pm.mask() ) {
-+ int bmser = pm.mask() ? pm.mask()->serialNumber() : 0;
-+ if( oldpmser == pm.serialNumber() && oldbmser == bmser
-+ && oldhot == hot )
-+ return;
-+ oldpmser = pm.serialNumber();
-+ oldbmser = bmser;
-+ oldhot = hot;
-+ bool hotspot_in = !(hot.x() < 0 || hot.y() < 0 || hot.x() >= pm.width() || hot.y() >= pm.height());
-+// if the pixmap has hotspot in its area, make a "hole" in it at that position
-+// this will allow XTranslateCoordinates() to find directly the window below the cursor instead
-+// of finding this pixmap, and therefore there won't be needed any (slow) search for the window
-+// using findRealWindow()
-+ if( hotspot_in ) {
-+ QBitmap mask = pm.mask() ? *pm.mask() : QBitmap( pm.width(), pm.height());
-+ if( !pm.mask())
-+ mask.fill( Qt::color1 );
-+ QPainter p( &mask );
-+ p.setPen( Qt::color0 );
-+ p.drawPoint( hot.x(), hot.y());
-+ p.end();
-+ pm.setMask( mask );
-+ setMask( mask );
-+ } else if ( pm.mask() ) {
- setMask( *pm.mask() );
- } else {
- clearMask();
- }
- resize(pm.width(),pm.height());
- setErasePixmap(pm);
-+ erase();
- }
-+private:
-+ int oldpmser;
-+ int oldbmser;
-+ QPoint oldhot;
- };
-
- QShapedPixmapWidget * qt_xdnd_deco = 0;
-@@ -859,6 +888,45 @@ void QDragManager::timerEvent( QTimerEve
- move( QCursor::pos() );
- }
-
-+static bool qt_xdnd_was_move = false;
-+static bool qt_xdnd_found = false;
-+// check whole incoming X queue for move events
-+// checking whole queue is done by always returning False in the predicate
-+// if there's another move event in the queue, and there's not a mouse button
-+// or keyboard or ClientMessage event before it, the current move event
-+// may be safely discarded
-+// this helps avoiding being overloaded by being flooded from many events
-+// from the XServer
-+static
-+Bool qt_xdnd_predicate( Display*, XEvent* ev, XPointer )
-+{
-+ if( qt_xdnd_found )
-+ return False;
-+ if( ev->type == MotionNotify )
-+ {
-+ qt_xdnd_was_move = true;
-+ qt_xdnd_found = true;
-+ }
-+ if( ev->type == ButtonPress || ev->type == ButtonRelease
-+ || ev->type == XKeyPress || ev->type == XKeyRelease
-+ || ev->type == ClientMessage )
-+ {
-+ qt_xdnd_was_move = false;
-+ qt_xdnd_found = true;
-+ }
-+ return False;
-+}
-+
-+static
-+bool qt_xdnd_another_movement()
-+{
-+ qt_xdnd_was_move = false;
-+ qt_xdnd_found = false;
-+ XEvent dummy;
-+ XCheckIfEvent( qt_xdisplay(), &dummy, qt_xdnd_predicate, NULL );
-+ return qt_xdnd_was_move;
-+}
-+
- bool QDragManager::eventFilter( QObject * o, QEvent * e)
- {
- if ( beingCancelled ) {
-@@ -881,8 +949,10 @@ bool QDragManager::eventFilter( QObject
-
- if ( e->type() == QEvent::MouseMove ) {
- QMouseEvent* me = (QMouseEvent *)e;
-- updateMode(me->stateAfter());
-- move( me->globalPos() );
-+ if( !qt_xdnd_another_movement()) {
-+ updateMode(me->stateAfter());
-+ move( me->globalPos() );
-+ }
- return TRUE;
- } else if ( e->type() == QEvent::MouseButtonRelease ) {
- qApp->removeEventFilter( this );
-@@ -1106,7 +1176,7 @@ void QDragManager::move( const QPoint &
- delete qt_xdnd_deco;
- qt_xdnd_deco = new QShapedPixmapWidget( screen );
- }
-- updatePixmap();
-+ updatePixmap( globalPos );
-
- if ( qt_xdnd_source_sameanswer.contains( globalPos ) &&
- qt_xdnd_source_sameanswer.isValid() ) {
-@@ -1679,7 +1749,7 @@ bool QDragManager::drag( QDragObject * o
- // qt_xdnd_source_object persists until we get an xdnd_finish message
- }
-
--void QDragManager::updatePixmap()
-+void QDragManager::updatePixmap( const QPoint& cursorPos )
- {
- if ( qt_xdnd_deco ) {
- QPixmap pm;
-@@ -1694,9 +1764,8 @@ void QDragManager::updatePixmap()
- defaultPm = new QPixmap(default_pm);
- pm = *defaultPm;
- }
-- qt_xdnd_deco->setPixmap(pm);
-- qt_xdnd_deco->move(QCursor::pos()-pm_hot);
-- qt_xdnd_deco->repaint(FALSE);
-+ qt_xdnd_deco->setPixmap(pm, pm_hot);
-+ qt_xdnd_deco->move(cursorPos-pm_hot);
- //if ( willDrop ) {
- qt_xdnd_deco->show();
- //} else {
-@@ -1705,4 +1774,9 @@ void QDragManager::updatePixmap()
- }
- }
-
-+void QDragManager::updatePixmap()
-+{
-+ updatePixmap( QCursor::pos());
-+}
-+
- #endif // QT_NO_DRAGANDDROP
---- src/kernel/qdragobject.h.sav 2002-11-01 19:25:07.000000000 +0100
-+++ src/kernel/qdragobject.h 2001-01-01 01:01:00.000000000 +0100
-@@ -245,6 +245,7 @@ private:
- void move( const QPoint & );
- void drop();
- void updatePixmap();
-+ void updatePixmap( const QPoint& cursorPos );
-
- private:
- QDragObject * object;
diff --git a/x11-libs/qt/files/0002-dnd_active_window_fix.patch b/x11-libs/qt/files/0002-dnd_active_window_fix.patch
deleted file mode 100644
index 4b497d64f65f..000000000000
--- a/x11-libs/qt/files/0002-dnd_active_window_fix.patch
+++ /dev/null
@@ -1,189 +0,0 @@
-qt-bugs@ issue : 25122
-applied: no
-author: Lubos Lunak <l.lunak@kde.org>
-
- Hello,
-
- for example: Open Konqueror window, showing some files. Start dragging one
- desktop icon. If you press/release Ctrl, there'll be a '+' attached to the
- icon, showing the DND operation. Now, while still doing DND, make the
- Konqueror window active (Alt+Tab with KDE-3.1.2+, hover over its taskbar
- entry, Ctrl+Fn to switch to a different virtual desktop, etc.). As soon as
- the app performing DND is not the active application, and the mouse is not
- moving, pressing/releasing Ctrl doesn't do anything, the state only updates
- when the mouse is moved.
-
- This is caused by the fact that Qt has only pointer grab when doing DND, but
- doesn't have keyboard grab. I actually consider this a good thing, because
- the only keys important for DND are modifiers, and they come together with
- pointer events, and not having keyboard grab allows using keyboard shortcuts
- like Alt+Tab while DND. However, when the mouse is not moved, and only a
- modifier key is pressed/released, the app won't get any mouse event, and
- won't also get the keyboard event.
-
- The attached patch changes Qt to explicitly check the modifiers state using
- XQueryPointer() if there's wasn't recently any mouse/keyboard event, which
- ensures the state is updated even in the situation described above.
-
---- src/kernel/qapplication_x11.cpp.sav 2003-06-21 12:31:35.000000000 +0200
-+++ src/kernel/qapplication_x11.cpp 2003-06-21 12:35:44.000000000 +0200
-@@ -4053,7 +4053,7 @@ void QApplication::closePopup( QWidget *
- // Keyboard event translation
- //
-
--static int translateButtonState( int s )
-+int qt_x11_translateButtonState( int s )
- {
- int bst = 0;
- if ( s & Button1Mask )
-@@ -4119,7 +4119,7 @@ bool QETWidget::translateMouseEvent( con
- pos.ry() = lastMotion.y;
- globalPos.rx() = lastMotion.x_root;
- globalPos.ry() = lastMotion.y_root;
-- state = translateButtonState( lastMotion.state );
-+ state = qt_x11_translateButtonState( lastMotion.state );
- if ( qt_button_down && (state & (LeftButton |
- MidButton |
- RightButton ) ) == 0 )
-@@ -4143,7 +4143,7 @@ bool QETWidget::translateMouseEvent( con
- pos.ry() = xevent->xcrossing.y;
- globalPos.rx() = xevent->xcrossing.x_root;
- globalPos.ry() = xevent->xcrossing.y_root;
-- state = translateButtonState( xevent->xcrossing.state );
-+ state = qt_x11_translateButtonState( xevent->xcrossing.state );
- if ( qt_button_down && (state & (LeftButton |
- MidButton |
- RightButton ) ) == 0 )
-@@ -4155,7 +4155,7 @@ bool QETWidget::translateMouseEvent( con
- pos.ry() = event->xbutton.y;
- globalPos.rx() = event->xbutton.x_root;
- globalPos.ry() = event->xbutton.y_root;
-- state = translateButtonState( event->xbutton.state );
-+ state = qt_x11_translateButtonState( event->xbutton.state );
- switch ( event->xbutton.button ) {
- case Button1: button = LeftButton; break;
- case Button2: button = MidButton; break;
-@@ -4950,7 +4950,7 @@ bool QETWidget::translateKeyEventInterna
- XKeyEvent xkeyevent = event->xkey;
-
- // save the modifier state, we will use the keystate uint later by passing
-- // it to translateButtonState
-+ // it to qt_x11_translateButtonState
- uint keystate = event->xkey.state;
- // remove the modifiers where mode_switch exists... HPUX machines seem
- // to have alt *AND* mode_switch both in Mod1Mask, which causes
-@@ -5064,7 +5064,7 @@ bool QETWidget::translateKeyEventInterna
- }
- #endif // !QT_NO_XIM
-
-- state = translateButtonState( keystate );
-+ state = qt_x11_translateButtonState( keystate );
-
- static int directionKeyEvent = 0;
- if ( qt_use_rtl_extensions && type == QEvent::KeyRelease ) {
---- src/kernel/qdnd_x11.cpp.sav 2003-06-30 15:26:42.000000000 +0200
-+++ src/kernel/qdnd_x11.cpp 2003-06-30 15:32:23.000000000 +0200
-@@ -114,6 +114,8 @@ Atom qt_xdnd_finished;
- Atom qt_xdnd_type_list;
- const int qt_xdnd_version = 4;
-
-+extern int qt_x11_translateButtonState( int s );
-+
- // Actions
- //
- // The Xdnd spec allows for user-defined actions. This could be implemented
-@@ -198,6 +200,8 @@ static Atom qt_xdnd_source_current_time;
- static int qt_xdnd_current_screen = -1;
- // state of dragging... true if dragging, false if not
- bool qt_xdnd_dragging = FALSE;
-+// need to check state of keyboard modifiers
-+static bool need_modifiers_check = FALSE;
-
- // dict of payload data, sorted by type atom
- static QIntDict<QByteArray> * qt_xdnd_target_data = 0;
-@@ -879,8 +883,20 @@ void qt_handle_xdnd_finished( QWidget *,
-
- void QDragManager::timerEvent( QTimerEvent* e )
- {
-- if ( e->timerId() == heartbeat && qt_xdnd_source_sameanswer.isNull() )
-- move( QCursor::pos() );
-+ if ( e->timerId() == heartbeat ) {
-+ if( need_modifiers_check ) {
-+ Window root, child;
-+ int root_x, root_y, win_x, win_y;
-+ unsigned int mask;
-+ XQueryPointer( qt_xdisplay(), qt_xrootwin( qt_xdnd_current_screen ),
-+ &root, &child, &root_x, &root_y, &win_x, &win_y, &mask );
-+ if( updateMode( (ButtonState)qt_x11_translateButtonState( mask )))
-+ qt_xdnd_source_sameanswer = QRect(); // force move
-+ }
-+ need_modifiers_check = TRUE;
-+ if( qt_xdnd_source_sameanswer.isNull() )
-+ move( QCursor::pos() );
-+ }
- }
-
- static bool qt_xdnd_was_move = false;
-@@ -948,6 +964,7 @@ bool QDragManager::eventFilter( QObject
- updateMode(me->stateAfter());
- move( me->globalPos() );
- }
-+ need_modifiers_check = FALSE;
- return TRUE;
- } else if ( e->type() == QEvent::MouseButtonRelease ) {
- qApp->removeEventFilter( this );
-@@ -986,9 +1003,11 @@ bool QDragManager::eventFilter( QObject
- beingCancelled = FALSE;
- qApp->exit_loop();
- } else {
-- updateMode(ke->stateAfter());
-- qt_xdnd_source_sameanswer = QRect(); // force move
-- move( QCursor::pos() );
-+ if( updateMode(ke->stateAfter())) {
-+ qt_xdnd_source_sameanswer = QRect(); // force move
-+ move( QCursor::pos() );
-+ }
-+ need_modifiers_check = FALSE;
- }
- return TRUE; // Eat all key events
- }
-@@ -1014,10 +1033,10 @@ bool QDragManager::eventFilter( QObject
-
-
- static Qt::ButtonState oldstate;
--void QDragManager::updateMode( ButtonState newstate )
-+bool QDragManager::updateMode( ButtonState newstate )
- {
- if ( newstate == oldstate )
-- return;
-+ return false;
- const int both = ShiftButton|ControlButton;
- if ( (newstate & both) == both ) {
- global_requested_action = QDropEvent::Link;
-@@ -1041,6 +1060,7 @@ void QDragManager::updateMode( ButtonSta
- }
- }
- oldstate = newstate;
-+ return true;
- }
-
-
-@@ -1707,6 +1727,7 @@ bool QDragManager::drag( QDragObject * o
- qt_xdnd_source_sameanswer = QRect();
- move(QCursor::pos());
- heartbeat = startTimer(200);
-+ need_modifiers_check = FALSE;
-
- #ifndef QT_NO_CURSOR
- qApp->setOverrideCursor( arrowCursor );
---- src/kernel/qdragobject.h.sav 2003-05-19 22:34:43.000000000 +0200
-+++ src/kernel/qdragobject.h 2001-01-01 01:01:00.000000000 +0100
-@@ -248,7 +248,7 @@ private:
-
- private:
- QDragObject * object;
-- void updateMode( ButtonState newstate );
-+ bool updateMode( ButtonState newstate );
- void updateCursor();
-
- QWidget * dragSource;
diff --git a/x11-libs/qt/files/0003-qmenubar_fitts_law.patch b/x11-libs/qt/files/0003-qmenubar_fitts_law.patch
deleted file mode 100644
index 65a336d64bcd..000000000000
--- a/x11-libs/qt/files/0003-qmenubar_fitts_law.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-qt-bugs@ issue : 20185
-applied: no
-author: Lubos Lunak <l.lunak@kde.org>
-
-Original version rejected (it looked a bit scary ;) ), I got no reply for
-this one yet.
-
---- src/widgets/qmenubar.cpp.sav 2003-03-04 16:05:44.000000000 +0100
-+++ src/widgets/qmenubar.cpp 2003-05-06 17:09:18.000000000 +0200
-@@ -1029,12 +1029,18 @@ QRect QMenuBar::itemRect( int index )
- it is a separator item.
- */
-
--int QMenuBar::itemAtPos( const QPoint &pos )
-+int QMenuBar::itemAtPos( const QPoint &pos_ )
- {
- calculateRects();
- if ( !irects )
- return -1;
- int i = 0;
-+ QPoint pos = pos_;
-+ // Fitts' Law for edges - compensate for the extra margin
-+ // added in calculateRects()
-+ const int margin = 2;
-+ pos.setX( QMAX( margin, QMIN( width() - margin, pos.x())));
-+ pos.setY( QMAX( margin, QMIN( height() - margin, pos.y())));
- while ( i < (int)mitems->count() ) {
- if ( !irects[i].isEmpty() && irects[i].contains( pos ) ) {
- QMenuItem *mi = mitems->at(i);
diff --git a/x11-libs/qt/files/0004-qiconview_etc_ctrl_selecting.patch b/x11-libs/qt/files/0004-qiconview_etc_ctrl_selecting.patch
deleted file mode 100644
index b79cbdf15282..000000000000
--- a/x11-libs/qt/files/0004-qiconview_etc_ctrl_selecting.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-qt-bugs@ issue : 21920 (part of)
-applied: no
-author: Lubos Lunak <l.lunak@kde.org>
-
- Run e.g. the iconview example, and try to select
- items 2, 4 and 6-32 (in this order) only with keyboard. Item 2 can be
- selected normally, 4 can be selected by holding Ctrl, moving to that item and
- pressing space, but going to 6, pressing Shift (while Ctrl is still pressed)
- doesn't work, because it unselects previously selected items. The attached
- patches for QListBox, QListView and QIconView seem to fix this problem, so
- that Shift+arrows selecting doesn't unselect anything if Ctrl is pressed.
-
-
---- src/iconview/qiconview.cpp.sav 2003-03-04 16:05:25.000000000 +0100
-+++ src/iconview/qiconview.cpp 2003-05-06 15:22:14.000000000 +0200
-@@ -6266,7 +6266,7 @@ void QIconView::handleItemChange( QIconV
- item->selected = TRUE;
- selectedRect = selectedRect.unite( item->rect() );
- }
-- } else if ( item->selected ) {
-+ } else if ( item->selected && !control ) {
- item->selected = FALSE;
- unselectedRect = unselectedRect.unite( item->rect() );
- changed = TRUE;
---- src/widgets/qlistbox.cpp.sav 2003-03-04 16:05:43.000000000 +0100
-+++ src/widgets/qlistbox.cpp 2003-05-06 15:20:24.000000000 +0200
-@@ -4540,7 +4540,7 @@ void QListBox::handleItemChange( QListBo
- } else if ( d->selectionMode == Extended ) {
- if ( shift ) {
- selectRange( d->selectAnchor ? d->selectAnchor : old,
-- d->current, FALSE, TRUE, d->selectAnchor ? TRUE : FALSE );
-+ d->current, FALSE, TRUE, d->selectAnchor && !control ? TRUE : FALSE );
- } else if ( !control ) {
- bool block = signalsBlocked();
- blockSignals( TRUE );
---- src/widgets/qlistview.cpp.sav 2003-04-30 18:22:50.000000000 +0200
-+++ src/widgets/qlistview.cpp 2003-05-06 15:39:42.000000000 +0200
-@@ -6897,7 +6897,7 @@ void QListView::handleItemChange( QListV
- } else if ( d->selectionMode == Extended ) {
- if ( shift ) {
- selectRange( d->selectAnchor ? d->selectAnchor : old,
-- d->focusItem, FALSE, TRUE, d->selectAnchor ? TRUE : FALSE );
-+ d->focusItem, FALSE, TRUE, d->selectAnchor && !control ? TRUE : FALSE );
- } else if ( !control ) {
- bool block = signalsBlocked();
- blockSignals( TRUE );
diff --git a/x11-libs/qt/files/0009-window_group.patch b/x11-libs/qt/files/0009-window_group.patch
deleted file mode 100644
index 07d8962262b4..000000000000
--- a/x11-libs/qt/files/0009-window_group.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-qt-bugs@ issue : 25601
-applied: no
-author: Lubos Lunak <l.lunak@kde.org>
-
-Helps with stacking order of dialogs, though at the present time probably
-only kwin_iii can make use of this change. Makes window group to be
-set differently in WM_HINTS than official Qt does.
-
-
- Hello,
-
- please consider applying the attached patch. The patch makes Qt set
-window_group in WM_HINTS to one leader window for all windows in the
-application, which seems to be what most apps/toolkits do these days. The
-ICCCM (4.1.2.4) is as usually vague, and the sentence 'An example is a single
-client manipulating multiple children of the root window' can be interpreted
-for both ways, as Qt does it today, or as the patch makes Qt do it.
-
- However, I see several reasons for doing it the way the patch does:
-- I fail to see a good way how to do proper stacking for root transient
-dialogs, if they aren't in the same group as the toplevel window (see
-http://bugs.kde.org/show_bug.cgi?id=56285 - if the KWrite mainwindow is set
-to be kept on top, and the dialog is root transient, and they're not in the
-same group, the WM has no reliable way to find out the dialog should be kept
-above the mainwindow, it can at most apply ugly hacks and try to guess;
-sadly, not passing parent to dialogs is a common practice among Qt/KDE
-developers)
-- the NETWM spec suggests to keep root transient windows as transient for the
-whole group, which is a bit hard, if the Qt dialog doesn't have any group set
-(http://www.freedesktop.org/standards/wm-spec/1.2/html/x355.html#AEN363)
-- the group information provided this way is redundant, the WM can build such
-window "group" using WM_TRANSIENT_FOR properties (note also that Qt currently
-doesn't set window_group for toplevel windows, which at least makes handling
-it even more complicated)
-- and finally, Gtk does so since Gtk-1.x ages, and they haven't changed their
-mind for Gtk-2.x, which suggests they haven't run into any problem with it
-
- I have to admit it this window groups and transiency stuff has caused me few
-headaches before I got it right in KWin (I hope), so if you have any comments
-on this, I'd like to hear them, but I'm currently quite sure the patch is
-right.
-
- Also, the first part of the patch removes using WM_TRANSIENT_FOR set to None
-for StaysOnTop windows. I quickly searched sources of few windowmanagers for
-such handling of WM_TRANSIENT_FOR, and I found none, with the exception of
-KWin, which doesn't do this anymore too. I didn't search that thoroughly, but
-I doubt some WM would handle WM_TRANSIENT_FOR being None as equivalent of
-'keep-on-top', and this setting to None takes precendence over setting
-WM_TRANSIENT_FOR to the widget's parent.
-
-
---- src/kernel/qwidget_x11.cpp.sav 2003-06-30 15:57:40.000000000 +0200
-+++ src/kernel/qwidget_x11.cpp 2003-06-30 16:19:40.000000000 +0200
-@@ -492,9 +492,7 @@ void QWidget::create( WId window, bool i
- testWFlags(WStyle_StaysOnTop) ||
- dialog ||
- testWFlags(WStyle_Tool) ) {
-- if ( testWFlags( WStyle_StaysOnTop ) )
-- XSetTransientForHint( dpy, id, None );
-- else if ( p )
-+ if ( p )
- XSetTransientForHint( dpy, id, p->winId() );
- else // application-modal
- XSetTransientForHint( dpy, id, root_win );
-@@ -518,11 +516,11 @@ void QWidget::create( WId window, bool i
- wm_hints.initial_state = NormalState;
- wm_hints.flags = InputHint | StateHint;
-
-- if ( p && ! p->isDesktop() ) {
-- // the real client leader (head of the group)
-- wm_hints.window_group = p->winId();
-- wm_hints.flags |= WindowGroupHint;
-- }
-+ if ( !qt_x11_wm_client_leader )
-+ qt_x11_create_wm_client_leader();
-+
-+ wm_hints.window_group = qt_x11_wm_client_leader;
-+ wm_hints.flags |= WindowGroupHint;
-
- XClassHint class_hint;
- class_hint.res_class = (char*) title; // app name
-@@ -568,9 +566,6 @@ void QWidget::create( WId window, bool i
- qt_window_role, XA_STRING, 8, PropModeReplace,
- (unsigned char *)name(), qstrlen( name() ) );
-
-- if ( !qt_x11_wm_client_leader )
-- qt_x11_create_wm_client_leader();
--
- // set client leader property
- XChangeProperty( dpy, id, qt_wm_client_leader,
- XA_WINDOW, 32, PropModeReplace,
diff --git a/x11-libs/qt/files/0011-listview_keys.patch b/x11-libs/qt/files/0011-listview_keys.patch
deleted file mode 100644
index bd401fe2317c..000000000000
--- a/x11-libs/qt/files/0011-listview_keys.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-qt-bugs@ issue : 19839
-bugs.kde.org number : 56688
-applied: no
-author: Scott Wheeler <wheeler@kde.org>
-
-Subject: [patch] QListView keys
-Date: Tuesday 01 April 2003 19:35
-From: Scott Wheeler <wheeler@kde.org>
-To: kde-core-devel@kde.org
-Cc: qt-bugs@kde.org, 56688@bugs.kde.org
-
-The column priority for QListView seems rather odd with respect to hotkeys.
-
-There are a few scenarios that don't really make sense:
-
-(1) If I have explicitly chosen to sort by a given column, it seems that the
-key pressed should jump to items starting with that letter in that column.
-
-I got a bug report on this in JuK today -- basically if someone is sorting by
-the artist column, pressing "A" shouldn't jump to track names that start with
-"A".
-
-(2) This always uses "column zero" rather than the leftmost column. This also
-seems flawed. Of course by default the column zero is the leftmost column.
-But since QListView allows you to reorder the columns, it seems like in an
-unsorted QListView that it should default to the leftmost column.
-
-Also I found a Windows box to try these on. (1) is done on Windows and I
-couldn't find a good test case for (2) (a multicolumn unsorted list). Since
-(1) is hard-coded into the source, I presume that this is a bug.
-
-It might be nice to have a couple of methods to set / retrieve which column
-keyboard hotkeys go to, but I'll stop pushing my luck... :-)
-
-Anyway, if there are no objections I'd like to commit this to qt-copy.
-
-Cheers,
-
--Scott
-
-Index: qlistview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/widgets/qlistview.cpp,v
-retrieving revision 1.60
-diff -u -3 -p -r1.60 qlistview.cpp
---- src/widgets/qlistview.cpp 23 Jun 2003 11:48:55 -0000 1.60
-+++ src/widgets/qlistview.cpp 1 Jul 2003 10:45:42 -0000
-@@ -4962,10 +4962,10 @@ void QListView::keyPressEvent( QKeyEvent
- QString keyItemKey;
- QString prefix;
- while( keyItem ) {
-- // Look for text in column 0, then left-to-right
-- keyItemKey = keyItem->text(0);
-- for (int col = 0; col < d->h->count() && !keyItemKey; col++ )
-- keyItemKey = keyItem->text( d->h->mapToLogical(col) );
-+ // Look first in the sort column, then the leftmost column, then left to right
-+ keyItemKey = keyItem->text( d->sortcolumn );
-+ for ( int col = 0; col < d->h->count() && !keyItemKey; col++ )
-+ keyItemKey = keyItem->text( d->h->mapToSection(col) );
- if ( !keyItemKey.isEmpty() ) {
- prefix = keyItemKey;
- prefix.truncate( input.length() );
diff --git a/x11-libs/qt/files/0013-qtabwidget-less_flicker.patch b/x11-libs/qt/files/0013-qtabwidget-less_flicker.patch
deleted file mode 100644
index e2cd2d4d6aae..000000000000
--- a/x11-libs/qt/files/0013-qtabwidget-less_flicker.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-qt-bugs@ issue : 23458
-bugs.kde.org number : 58040
-applied: no
-author: Stephan Binner <binner@kde.org>
-
-Less flicker during changes in the tab bar.
-
-No replacement for the disabled (identical) code parts given as I don't
-understand the purpose of them and noticed no drawbacks when disabled.
-
-Index: src/widgets/qtabbar.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/widgets/qtabbar.cpp,v
-retrieving revision 1.52
-diff -u -3 -p -b -r1.52 qtabbar.cpp
---- src/widgets/qtabbar.cpp 23 Jun 2003 11:48:57 -0000 1.52
-+++ src/widgets/qtabbar.cpp 1 Jul 2003 12:29:42 -0000
-@@ -1290,7 +1290,7 @@ void QTab::setText( const QString& text
- tb->d->a->insertItem( p, id );
- #endif
- tb->layoutTabs();
-- tb->repaint();
-+ tb->repaint( FALSE );
-
- #if defined(QT_ACCESSIBILITY_SUPPORT)
- QAccessible::updateAccessibility( tb, tb->indexOf(id)+1, QAccessible::NameChanged );
-Index: src/widgets/qtabwidget.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/widgets/qtabwidget.cpp,v
-retrieving revision 1.50
-diff -u -3 -p -b -r1.50 qtabwidget.cpp
---- src/widgets/qtabwidget.cpp 23 Jun 2003 11:48:57 -0000 1.50
-+++ src/widgets/qtabwidget.cpp 1 Jul 2003 12:29:43 -0000
-@@ -380,7 +380,7 @@ void QTabWidget::changeTab( QWidget *w,
- return;
- // this will update the accelerators
- t->setText( label );
--
-+/*
- int ct = d->tabs->currentTab();
- bool block = d->tabs->signalsBlocked();
- d->tabs->blockSignals( TRUE );
-@@ -389,7 +389,7 @@ void QTabWidget::changeTab( QWidget *w,
- d->tabs->setCurrentTab( ft->identifier() );
- d->tabs->setCurrentTab( ct );
- d->tabs->blockSignals( block );
--
-+*/
- d->tabs->update();
- setUpLayout();
- }
-@@ -414,7 +414,7 @@ void QTabWidget::changeTab( QWidget *w,
- // this will update the accelerators
- t->iconset = new QIconSet( iconset );
- t->setText( label );
--
-+/*
- int ct = d->tabs->currentTab();
- bool block = d->tabs->signalsBlocked();
- d->tabs->blockSignals( TRUE );
-@@ -423,7 +423,7 @@ void QTabWidget::changeTab( QWidget *w,
- d->tabs->setCurrentTab( ft->identifier() );
- d->tabs->setCurrentTab( ct );
- d->tabs->blockSignals( block );
--
-+*/
- d->tabs->update();
- setUpLayout();
- }
-@@ -1041,7 +1041,7 @@ void QTabWidget::setTabIconSet( QWidget
- t->iconset = new QIconSet( iconset );
-
- d->tabs->layoutTabs();
--
-+/*
- int ct = d->tabs->currentTab();
- bool block = d->tabs->signalsBlocked();
- d->tabs->blockSignals( TRUE );
-@@ -1050,7 +1050,7 @@ void QTabWidget::setTabIconSet( QWidget
- d->tabs->setCurrentTab( ft->identifier() );
- d->tabs->setCurrentTab( ct );
- d->tabs->blockSignals( block );
--
-+*/
- d->tabs->update();
- setUpLayout();
- }
diff --git a/x11-libs/qt/files/0014-qiconview-autoscroll.patch b/x11-libs/qt/files/0014-qiconview-autoscroll.patch
deleted file mode 100644
index dd78f5a79946..000000000000
--- a/x11-libs/qt/files/0014-qiconview-autoscroll.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-qt-bugs@ issue : 23151
-applied: no
-author: Pascal Létourneau <pletourn@globetrotter.net>
-
-Fix the QRect().contains() test.
-It was using the content pos instead of the viewport pos.
-ensureVisible() use a default margin of 50px, this should be reflected in the
-construction of the QRect.
-
-Index: iconview/qiconview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/iconview/qiconview.cpp,v
-retrieving revision 1.47
-diff -u -3 -p -r1.47 qiconview.cpp
---- src/iconview/qiconview.cpp 16 May 2003 13:02:38 -0000 1.47
-+++ src/iconview/qiconview.cpp 30 May 2003 20:32:34 -0000
-@@ -3257,9 +3258,11 @@ void QIconView::doAutoScroll()
- {
- QRect oldRubber = QRect( *d->rubber );
-
-- QPoint pos = QCursor::pos();
-- pos = viewport()->mapFromGlobal( pos );
-- pos = viewportToContents( pos );
-+ QPoint vp = viewport()->mapFromGlobal( QCursor::pos() );
-+ QPoint pos = viewportToContents( vp );
-+
-+ if ( pos == d->rubber->bottomRight() )
-+ return;
-
- d->rubber->setRight( pos.x() );
- d->rubber->setBottom( pos.y() );
-@@ -3352,15 +3355,14 @@ void QIconView::doAutoScroll()
- if ( d->selectionMode == Single )
- emit selectionChanged( d->currentItem );
- }
--
-- if ( !QRect( 0, 0, viewport()->width(), viewport()->height() ).contains( pos ) &&
-+ if ( !QRect( 50, 50, viewport()->width()-100, viewport()->height()-100 ).contains( vp ) &&
- !d->scrollTimer ) {
- d->scrollTimer = new QTimer( this );
-
- connect( d->scrollTimer, SIGNAL( timeout() ),
- this, SLOT( doAutoScroll() ) );
- d->scrollTimer->start( 100, FALSE );
-- } else if ( QRect( 0, 0, viewport()->width(), viewport()->height() ).contains( pos ) &&
-+ } else if ( QRect( 50, 50, viewport()->width()-100, viewport()->height()-100 ).contains( vp ) &&
- d->scrollTimer ) {
- disconnect( d->scrollTimer, SIGNAL( timeout() ),
- this, SLOT( doAutoScroll() ) );
-
diff --git a/x11-libs/qt/files/0015-qiconview-finditem.patch b/x11-libs/qt/files/0015-qiconview-finditem.patch
deleted file mode 100644
index 1c02622972fe..000000000000
--- a/x11-libs/qt/files/0015-qiconview-finditem.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-qt-bugs@ issue : 18886
-applied: no
-author: Pascal Létourneau <pletourn@globetrotter.net>
-
-QIconView::findItem() should always search all ItemContainer to find the best
-match.
-
-Example:
-
------ -----
-| | | | ItemContainer
---------------------------------------
-| | | | boundary
-| | ----- | |
-| | | | | |
------ ----- -----
-item1 item2 item3
-
-Right now, the focus goes from item1 to item3 when you press Key_Right.
-
-[ Since the mail was sent, I added the diff 'contains -> intersects' ]
-
-Index: src/iconview/qiconview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/iconview/qiconview.cpp,v
-retrieving revision 1.47
-diff -u -3 -p -r1.47 qiconview.cpp
---- src/iconview/qiconview.cpp 16 May 2003 13:02:38 -0000 1.47
-+++ src/iconview/qiconview.cpp 30 May 2003 20:32:34 -0000
-@@ -5200,11 +5201,11 @@ QIconViewItem* QIconView::findItem( Dire
- d->findContainers( dir, relativeTo, searchRect);
-
- cList->first();
-- while ( cList->current() && !centerMatch ) {
-+ while ( cList->current() ) {
- QPtrList<QIconViewItem> &list = (cList->current())->items;
- for ( item = list.first(); item; item = list.next() ) {
- if ( neighbourItem( dir, relativeTo, item ) &&
-- searchRect.contains( item->rect().center() ) &&
-+ searchRect.intersects( item->rect() ) &&
- item != currentItem() ) {
- int ml = (relativeTo - item->rect().center()).manhattanLength();
- if ( centerMatch ) {
diff --git a/x11-libs/qt/files/0016-qiconview-rebuildcontainer.patch b/x11-libs/qt/files/0016-qiconview-rebuildcontainer.patch
deleted file mode 100644
index df1c36ad7117..000000000000
--- a/x11-libs/qt/files/0016-qiconview-rebuildcontainer.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-qt-bugs@ issue : 18598
-applied: no
-author: Pascal Létourneau <pletourn@globetrotter.net>
-
-Sometimes QIconView doesn't paint the top of an icon.
-It's because this part of QIconView::rebuildContainers() is never reached.
-
-...
-if ( d->arrangement == LeftToRight ) {
- if ( item->y() < c->rect.y() && c->p ) {
- c = c->p; <<<<<<<<<<<<<<<<<
- continue;
-...
-
-
-Index: src/iconview/qiconview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/iconview/qiconview.cpp,v
-retrieving revision 1.47
-diff -u -3 -p -r1.47 qiconview.cpp
---- src/iconview/qiconview.cpp 16 May 2003 13:02:38 -0000 1.47
-+++ src/iconview/qiconview.cpp 30 May 2003 20:32:34 -0000
-@@ -6122,7 +6123,9 @@ void QIconView::rebuildContainers()
- item->d->container2 = 0;
- c->items.append( item );
- item = item->next;
-- } else if ( c->rect.intersects( item->rect() ) ) {
-+ } else if ( c->rect.intersects( item->rect() ) && (
-+ ( d->arrangement == LeftToRight && item->y() >= c->rect.y() ) ||
-+ ( d->arrangement == TopToBottom && item->x() >= c->rect.x() ) ) ) {
- item->d->container1 = c;
- c->items.append( item );
- c = c->n;
-
diff --git a/x11-libs/qt/files/0017-qiconview-ctrl_rubber.patch b/x11-libs/qt/files/0017-qiconview-ctrl_rubber.patch
deleted file mode 100644
index 02611de85f13..000000000000
--- a/x11-libs/qt/files/0017-qiconview-ctrl_rubber.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-qt-bugs@ issue : 23919
-applied: no
-author: Pascal Létourneau <pletourn@globetrotter.net>
-
-This patch modifies the behavior of the rubber selection.
-Now Shift-rubber behaves like the old Ctrl-rubber.
-And now Ctrl-rubber toggles the state of the icons.
-This is more consistant with other iconview (Nautilus, Win Explorer, ...)
-and with Qt itself (Ctrl-click toggle the state of an icon).
-
-Index: src/iconview/qiconview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/iconview/qiconview.cpp,v
-retrieving revision 1.48
-diff -u -3 -p -r1.48 qiconview.cpp
---- src/iconview/qiconview.cpp 23 Jun 2003 11:48:21 -0000 1.48
-+++ src/iconview/qiconview.cpp 1 Jul 2003 16:36:17 -0000
-@@ -257,7 +257,8 @@ public:
- uint dragging :1;
- uint drawActiveSelection :1;
- uint inMenuMode :1;
--
-+ uint controlPressed :1;
-+
- QIconViewToolTip *toolTip;
- QPixmapCache maskCache;
- QPtrDict<QIconViewItem> selectedItems;
-@@ -2726,6 +2727,7 @@ QIconView::QIconView( QWidget *parent, c
- d->lastItem = 0;
- d->count = 0;
- d->mousePressed = FALSE;
-+ d->controlPressed = FALSE;
- d->selectionMode = Single;
- d->currentItem = 0;
- d->highlightedItem = 0;
-@@ -3288,9 +3290,18 @@ void QIconView::doAutoScroll()
- alreadyIntersected = TRUE;
- QIconViewItem *item = c->items.first();
- for ( ; item; item = c->items.next() ) {
-- if ( d->selectedItems.find( item ) )
-- continue;
-- if ( !item->intersects( nr ) ) {
-+ if ( d->selectedItems.find( item ) ) {
-+ if ( item->intersects( nr ) && item->isSelected() && d->controlPressed ) {
-+ item->setSelected( FALSE );
-+ changed = TRUE;
-+ rr = rr.unite( item->rect() );
-+ } else if ( !item->intersects( nr ) && !item->isSelected() && d->controlPressed ) {
-+ item->setSelected( TRUE, TRUE );
-+ changed = TRUE;
-+ rr = rr.unite( item->rect() );
-+ } else
-+ continue;
-+ } else if ( !item->intersects( nr ) ) {
- if ( item->isSelected() ) {
- item->setSelected( FALSE );
- changed = TRUE;
-@@ -4480,7 +4491,7 @@ void QIconView::contentsMousePressEventE
- }
- }
- } else if ( ( d->selectionMode != Single || e->button() == RightButton )
-- && !( e->state() & ControlButton ) )
-+ && !( e->state() & ControlButton ) && !( e->state() & ShiftButton ) )
- selectAll( FALSE );
-
- setCurrentItem( item );
-@@ -4491,12 +4502,11 @@ void QIconView::contentsMousePressEventE
- d->tmpCurrentItem = d->currentItem;
- d->currentItem = 0;
- repaintItem( d->tmpCurrentItem );
-- if ( d->rubber )
-- delete d->rubber;
-- d->rubber = 0;
-+ delete d->rubber;
- d->rubber = new QRect( e->x(), e->y(), 0, 0 );
- d->selectedItems.clear();
-- if ( ( e->state() & ControlButton ) == ControlButton ) {
-+ if ( ( e->state() & ControlButton ) == ControlButton ||
-+ ( e->state() & ShiftButton ) == ShiftButton ) {
- for ( QIconViewItem *i = firstItem(); i; i = i->nextItem() )
- if ( i->isSelected() )
- d->selectedItems.insert( i, i );
-@@ -4504,6 +4514,7 @@ void QIconView::contentsMousePressEventE
- }
-
- d->mousePressed = TRUE;
-+ d->controlPressed = ( ( e->state() & ControlButton ) == ControlButton );
- }
-
- emit_signals:
diff --git a/x11-libs/qt/files/0018-qlistview-paintcell.patch b/x11-libs/qt/files/0018-qlistview-paintcell.patch
deleted file mode 100644
index 1ebfaf038d7b..000000000000
--- a/x11-libs/qt/files/0018-qlistview-paintcell.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-qt-bugs@ issue : 21865
-applied: no
-author: Pascal Létourneau <pletourn@globetrotter.net>
-
-Sometimes, the last letter of a cell is not shown completely.
-
-Index: src/widgets/qlistview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/widgets/qlistview.cpp,v
-retrieving revision 1.60
-diff -u -3 -p -r1.60 qlistview.cpp
---- src/widgets/qlistview.cpp 23 Jun 2003 11:48:55 -0000 1.60
-+++ src/widgets/qlistview.cpp 1 Jul 2003 17:18:22 -0000
-@@ -2011,7 +2011,7 @@ void QListViewItem::paintCell( QPainter
- ci->truncated = FALSE;
- // if we have to do the ellipsis thingy calc the truncated text
- int pw = pixmap( column ) ? pixmap( column )->width() + lv->itemMargin() : lv->itemMargin();
-- if ( !mlenabled && fm.width( t ) + pw > width ) {
-+ if ( !mlenabled && this->width( fm, lv, column ) > width ) {
- // take care of arabic shaping in width calculation (lars)
- ci->truncated = TRUE;
- ci->tmpText = "...";
-@@ -2023,7 +2023,7 @@ void QListViewItem::paintCell( QPainter
- if ( ci->tmpText.isEmpty() )
- ci->tmpText = t.left( 1 );
- ci->tmpText += "...";
-- } else if ( mlenabled && fm.width( t ) + pw > width ) {
-+ } else if ( mlenabled && this->width( fm, lv, column ) > width ) {
- #ifndef QT_NO_STRINGLIST
- QStringList list = QStringList::split( QChar('\n'), t, TRUE );
- for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
diff --git a/x11-libs/qt/files/0019-qlistview-adjustcolumn.patch b/x11-libs/qt/files/0019-qlistview-adjustcolumn.patch
deleted file mode 100644
index de4bd07ec121..000000000000
--- a/x11-libs/qt/files/0019-qlistview-adjustcolumn.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-qt-bugs@ issue : 25102
-applied: no
-author: Pascal Létourneau <pletourn@globetrotter.net>
-
-Don't paint more items than necessary.
-adjustColumn() should consider only visible items.
-
-Index: src/widgets/qlistview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/widgets/qlistview.cpp,v
-retrieving revision 1.60
-diff -u -3 -p -r1.60 qlistview.cpp
---- src/widgets/qlistview.cpp 23 Jun 2003 11:48:55 -0000 1.60
-+++ src/widgets/qlistview.cpp 1 Jul 2003 17:45:34 -0000
-@@ -2840,7 +2840,7 @@ void QListView::drawContentsOffset( QPai
- int cs;
-
- // need to paint current?
-- if ( ih > 0 && current->y < cy+ch && current->y+ih >= cy ) {
-+ if ( ih > 0 && current->y < cy+ch && current->y+ih > cy ) {
- if ( fx < 0 ) {
- // find first interesting column, once
- x = 0;
-@@ -8033,15 +8033,14 @@ void QListView::adjustColumn( int col )
- w += d->h->iconSet( col )->pixmap().width();
- w = QMAX( w, 20 );
- QFontMetrics fm( fontMetrics() );
-- QListViewItemIterator it( this );
-+ QListViewItem* item = firstChild();
- int rootDepth = rootIsDecorated() ? treeStepSize() : 0;
-- while ( it.current() ) {
-- QListViewItem *item = it.current();
-- ++it;
-+ while ( item ) {
- int iw = item->width( fm, this, col );
- if ( 0 == col )
- iw += itemMargin() + rootDepth + item->depth()*treeStepSize() - 1;
- w = QMAX( w, iw );
-+ item = item->itemBelow();
- }
- w = QMAX( w, QApplication::globalStrut().width() );
- setColumnWidth( col, w );
diff --git a/x11-libs/qt/files/0020-designer-deletetabs.patch b/x11-libs/qt/files/0020-designer-deletetabs.patch
deleted file mode 100644
index 23b1e1d300a2..000000000000
--- a/x11-libs/qt/files/0020-designer-deletetabs.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-qt-bugs@ issue : N26525
-applied: no
-author: Thomas Zander <zander@kde.org>
-
-it is possible to remove all tabs from a QTabWidget in the 'object explorer'.
-
-After inserting a new tabWidget I normally get 2 tabs. Using
-the popup menu on the widget itself a delete is not present when there
-is just one tab left. In other words; I can't delete all tabs.
-
-The popup menu presented on the 'object explorer' toolbar does not do any
-checking on the amount of tabs present; it is possible to delete all tabs
-from there.
-
-To reproduce;
- - Open new document.
- - Insert QTabWidget.
- - Press with RMB on the just inserted tabWidget and press 'delete page'
- - Open the same popup again; notice the missing 'delete page' entry.
-
- - go to the 'object explorer' toolbar and make sure it is on the
- 'objects' tab.
- - Press with the RMB on the QTabWidget name.
- - Press 'delete page' and the last page is deleted.
-
-Solution; on every show of the popup check if delete is possible and enable
-correctly.
-
-Index: tools/designer/designer/hierarchyview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/tools/tools/designer/designer/hierarchyview.cpp,v
-retrieving revision 1.20
-diff -u -3 -p -b -r1.20 hierarchyview.cpp
---- tools/designer/designer/hierarchyview.cpp 23 Jun 2003 11:49:05 -0000 1.20
-+++ tools/designer/designer/hierarchyview.cpp 12 Jul 2003 17:09:29 -0000
-@@ -599,6 +599,7 @@ void HierarchyList::showRMBMenu( QListVi
- formWindow->mainWindow()->setupTabWidgetHierarchyMenu(
- this, SLOT( addTabPage() ),
- SLOT( removeTabPage() ) );
-+ tabWidgetMenu->setItemEnabled(MainWindow::POPUP_REMOVE_PAGE_ID, ((QDesignerTabWidget*)w )->count() > 1);
- tabWidgetMenu->popup( p );
- }
- }
-Index: tools/designer/designer/mainwindow.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/tools/tools/designer/designer/mainwindow.cpp,v
-retrieving revision 1.33
-diff -u -3 -p -b -r1.33 mainwindow.cpp
---- tools/designer/designer/mainwindow.cpp 23 Jun 2003 11:49:06 -0000 1.33
-+++ tools/designer/designer/mainwindow.cpp 12 Jul 2003 17:09:31 -0000
-@@ -2419,8 +2419,8 @@ QPopupMenu *MainWindow::setupTabWidgetHi
- {
- QPopupMenu *menu = new QPopupMenu( parent );
-
-- menu->insertItem( tr( "Add Page" ), parent, addSlot );
-- menu->insertItem( tr( "Delete Page" ), parent, removeSlot );
-+ menu->insertItem( tr( "Add Page" ), parent, addSlot, 0, POPUP_REMOVE_PAGE_ID+1 );
-+ menu->insertItem( tr( "Delete Page" ), parent, removeSlot, 0, POPUP_REMOVE_PAGE_ID );
- menu->insertSeparator();
- actionEditCut->addTo( menu );
- actionEditCopy->addTo( menu );
-Index: tools/designer/designer/mainwindow.h
-===================================================================
-RCS file: /home/kde/qt-copy/tools/tools/designer/designer/mainwindow.h,v
-retrieving revision 1.15
-diff -u -3 -p -b -r1.15 mainwindow.h
---- tools/designer/designer/mainwindow.h 16 May 2003 13:03:27 -0000 1.15
-+++ tools/designer/designer/mainwindow.h 12 Jul 2003 17:09:31 -0000
-@@ -107,6 +107,7 @@ public:
-
- QPopupMenu *setupNormalHierarchyMenu( QWidget *parent );
- QPopupMenu *setupTabWidgetHierarchyMenu( QWidget *parent, const char *addSlot, const char *removeSlot );
-+ static const int POPUP_REMOVE_PAGE_ID = 1;
-
- FormWindow *openFormWindow( const QString &fn, bool validFileName = TRUE, FormFile *ff = 0 );
- bool isCustomWidgetUsed( MetaDataBase::CustomWidget *w );
diff --git a/x11-libs/qt/files/0021-qiconview-dragalittle.patch b/x11-libs/qt/files/0021-qiconview-dragalittle.patch
deleted file mode 100644
index 8322acf5f859..000000000000
--- a/x11-libs/qt/files/0021-qiconview-dragalittle.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-qt-bugs@ issue : 26009
-applied: no
-author: Clarence Dang <dang@kde.org>
-
-Subject: Unable to drag icons a small distance in QIconView (Re: Several suggestions to make KDE desktop look/behave nicer)
-From: Clarence Dang <dang@kde.org>
-To: qt-bugs@trolltech.com
-CC: kde-usability@mail.kde.org
-Date: Thu, 3 Jul 2003 23:09:24 +1000
-
-
-Hi Trolltech,
-
-On Fri, 27 Jun 2003 08:42 pm, Michael Pye wrote:
-> On Friday 27 Jun 2003 8:24 am, Clarence Dang wrote:
-> > On Fri, 27 Jun 2003 09:18 am, Ivica Bukvic wrote:
-[about the QIconView-based KDE Desktop]
-> > > 4) Icon dragging often fails if the icons are dragged a short distance,
-> > > even if the auto-allign options are turned off -- this is quite
-> > > annoying. Users should be able to move icons however and wherever
-> > >they prefer, without fighting the UI.
-> >
-> > Yeah, I get that too even with "Drag Start Distance" set to 1. So to
-> > move an icon just a little bit, I have to move it far away and then back
-> > to where I want it. I'll have a look into this.
->
-> As far as I can tell, the icon does not move unless the pointer finishes
-> outside the bounds of the icon's original position.
-That was it, thanks. AFAICS, QIconView tries to prevent you from moving an
-icon on top of another icon. But, in this case, when you're moving an icon
-just a little bit, the icon it "lands on top of" is the icon being dragged.
-
-So, here's a patch. There are still some slight bugs to do with really,
-really tiny drags but I don't have time to investigate them right now.
-
-Cheers,
-Clarence
-
-[this patch is slightly different from the one sent to TT - a redundant
-check was removed]
-
-Index: src/iconview/qiconview.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/iconview/qiconview.cpp,v
-retrieving revision 1.49
-diff -u -p -r1.49 qiconview.cpp
---- src/iconview/qiconview.cpp 1 Jul 2003 23:06:42 -0000 1.49
-+++ src/iconview/qiconview.cpp 23 Jul 2003 05:19:28 -0000
-@@ -4770,7 +4770,7 @@ void QIconView::contentsDropEvent( QDrop
-
- QIconViewItem *i = findItem( e->pos() );
-
-- if ( !i && e->source() == viewport() && d->currentItem && !d->cleared ) {
-+ if ( (!i || i == d->currentItem) && e->source() == viewport() && d->currentItem && !d->cleared ) {
- if ( !d->rearrangeEnabled )
- return;
- QRect r = d->currentItem->rect();
diff --git a/x11-libs/qt/files/0022-qdragobject-hotspot.patch b/x11-libs/qt/files/0022-qdragobject-hotspot.patch
deleted file mode 100644
index cfbafe486339..000000000000
--- a/x11-libs/qt/files/0022-qdragobject-hotspot.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-qt-bugs@ issue : 28108
-applied: no
-author: John Firebaugh <jfirebaugh@kde.org>
-
-void QDragObject::setPixmap(QPixmap pm) documentation:
-
- Uses a hotspot that positions the pixmap below and to the right of
- the mouse pointer. This allows the user to clearly see the point
- on the window which they are dragging the data onto.
-
-This is a good idea. Unfortunately the code doesn't do that.
-
-Hi John,
-
-thanks for bringing this discrepancy to our attention; we will look into
-this for a future version of Qt (we cannot change the actual behavior
-within the release cycle of Qt 3.2 I'm afraid).
-
-Regards,
-Volker
-
---
-Volker Hilsheimer, Support Manager
-Trolltech AS, Waldemar Thranes gate 98, NO-0175 Oslo, Norway
-
-Index: src/kernel/qdragobject.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/kernel/qdragobject.cpp,v
-retrieving revision 1.55
-diff -u -3 -p -r1.55 qdragobject.cpp
---- src/kernel/qdragobject.cpp 23 Jun 2003 11:48:23 -0000 1.55
-+++ src/kernel/qdragobject.cpp 2 Aug 2003 03:45:48 -0000
-@@ -363,7 +363,7 @@ void QDragObject::setPixmap(QPixmap pm,
- */
- void QDragObject::setPixmap(QPixmap pm)
- {
-- setPixmap(pm,QPoint(pm.width()/2,pm.height()/2));
-+ setPixmap(pm,QPoint(-10,-10));
- }
-
- /*!
diff --git a/x11-libs/qt/files/0023-qstring-crash.patch b/x11-libs/qt/files/0023-qstring-crash.patch
deleted file mode 100644
index dd4d7e72fd44..000000000000
--- a/x11-libs/qt/files/0023-qstring-crash.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-qt-bugs@ issue : 28421 (related to 23835)
-applied: yes
-author: Waldo Bastian <bastian@kde.org>
-
-Index: qstring.cpp
-===================================================================
-RCS file: /home/kde/qt-copy/src/tools/qstring.cpp,v
-retrieving revision 1.55
-diff -u -r1.55 src/tools/qstring.cpp
---- src/tools/qstring.cpp 23 Jul 2003 18:14:00 -0000 1.55
-+++ src/tools/qstring.cpp 7 Aug 2003 14:41:47 -0000
-@@ -5275,7 +5275,6 @@
- *qch++ = QChar(0xde00+((uchar)utf8[i]));
- need = 0;
- }
-- error = -1;
- } else {
- if ( ch < 128 ) {
- *qch++ = ch;
-@@ -5291,10 +5290,14 @@
- uc = ch & 0x07;
- need = 3;
- error = i;
-+ } else {
-+ // Error
-+ *qch++ = QChar(0xdbff);
-+ *qch++ = QChar(0xde00+((uchar)utf8[i]));
- }
- }
- }
-- if (error != -1) {
-+ if (need) {
- // we have some invalid characters remaining we need to add to the string
- for (int i = error; i < len; ++i) {
- *qch++ = QChar(0xdbff);
diff --git a/x11-libs/qt/files/0024-fix_enter_leave_notify.patch b/x11-libs/qt/files/0024-fix_enter_leave_notify.patch
deleted file mode 100644
index 159ebb4f8551..000000000000
--- a/x11-libs/qt/files/0024-fix_enter_leave_notify.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-qt-bugs@ issue : 25022
-applied: no
-author: Lubos Lunak <l.lunak@kde.org>
-
-Fixes mouse focus policies in kwin_iii. Already in official Qt.
-
---- src/kernel/qapplication_x11.cpp.sav 2003-06-20 13:23:03.000000000 +0200
-+++ src/kernel/qapplication_x11.cpp 2003-06-20 15:14:23.000000000 +0200
-@@ -3667,9 +3667,12 @@ int QApplication::x11ProcessEvent( XEven
- QWidget* enter = 0;
- XEvent ev;
- while ( XCheckMaskEvent( widget->x11Display(), EnterWindowMask | LeaveWindowMask , &ev )
-- && !qt_x11EventFilter( &ev ) && !widget->x11Event( &ev ) ) {
-+ && !qt_x11EventFilter( &ev )) {
-+ QWidget* event_widget = QWidget::find( ev.xcrossing.window );
-+ if( event_widget && event_widget->x11Event( &ev ) )
-+ break;
- if ( ev.type == LeaveNotify && ev.xcrossing.mode == NotifyNormal ){
-- enter = QWidget::find( ev.xcrossing.window );
-+ enter = event_widget;
- XPutBackEvent( widget->x11Display(), &ev );
- break;
- }
-@@ -3677,7 +3680,7 @@ int QApplication::x11ProcessEvent( XEven
- ev.xcrossing.detail == NotifyVirtual ||
- ev.xcrossing.detail == NotifyNonlinearVirtual )
- continue;
-- enter = QWidget::find( ev.xcrossing.window );
-+ enter = event_widget;
- if ( ev.xcrossing.focus &&
- enter && !enter->isDesktop() && !enter->isActiveWindow() ) {
- if ( qt_focus_model == FocusModel_Unknown ) // check focus model
diff --git a/x11-libs/qt/files/0026-netwm-fullscreen.patch b/x11-libs/qt/files/0026-netwm-fullscreen.patch
deleted file mode 100644
index 00a6aabcb201..000000000000
--- a/x11-libs/qt/files/0026-netwm-fullscreen.patch
+++ /dev/null
@@ -1,212 +0,0 @@
---- src/kernel/qapplication_x11.cpp.sav 2003-08-06 18:41:22.000000000 +0200
-+++ src/kernel/qapplication_x11.cpp 2003-08-06 18:42:22.000000000 +0200
-@@ -254,6 +254,7 @@ Atom qt_net_wm_state = 0;
- Atom qt_net_wm_state_modal = 0;
- Atom qt_net_wm_state_max_v = 0;
- Atom qt_net_wm_state_max_h = 0;
-+Atom qt_net_wm_state_fullscreen = 0;
- Atom qt_net_wm_window_type = 0;
- Atom qt_net_wm_window_type_normal = 0;
- Atom qt_net_wm_window_type_dialog = 0;
-@@ -1420,6 +1421,62 @@ void qt_get_net_virtual_roots()
- }
- }
-
-+void qt_net_change_state(const QWidget* w, Atom state, bool set)
-+{
-+ if( w->isShown()) { // managed by WM
-+ XEvent ev;
-+ ev.xclient.type = ClientMessage;
-+ ev.xclient.message_type = qt_net_wm_state;
-+ ev.xclient.display = w->x11Display();
-+ ev.xclient.window = w->winId();
-+ ev.xclient.format = 32;
-+ ev.xclient.data.l[ 0 ] = set ? 1 : 0;
-+ ev.xclient.data.l[ 1 ] = state;
-+ ev.xclient.data.l[ 2 ] = 0;
-+ ev.xclient.data.l[ 3 ] = 0;
-+ ev.xclient.data.l[ 4 ] = 0;
-+ XSendEvent( w->x11Display(), RootWindow(w->x11Display(), w->x11Screen() ), False,
-+ SubstructureRedirectMask|SubstructureNotifyMask, &ev );
-+ } else {
-+ Atom ret;
-+ int format, e;
-+ unsigned char *data = 0;
-+ unsigned long nitems, after;
-+ e = XGetWindowProperty( w->x11Display(), w->winId(),
-+ qt_net_wm_state, 0, 1024, False,
-+ XA_ATOM, &ret, &format, &nitems,
-+ &after, &data);
-+ if (e == Success && ret == XA_ATOM && format == 32 &&
-+ nitems > 0) {
-+ Atom *states = (Atom *) data;
-+ Atom *new_states = new Atom[ nitems + 1 ];
-+ unsigned long i;
-+ unsigned long new_count = 0;
-+ for (i = 0; i < nitems; i++) {
-+ if (states[i] == state) {
-+ if(set) {
-+ delete[] new_states;
-+ return; // already set, no need to change anything
-+ }
-+ // else don't copy
-+ } else
-+ new_states[ new_count++ ] = states[ i ];
-+ }
-+ if( set )
-+ new_states[ new_count++ ] = state;
-+ XChangeProperty( w->x11Display(), w->winId(), qt_net_wm_state, XA_ATOM, 32, PropModeReplace,
-+ (unsigned char *) new_states, new_count );
-+ delete[] new_states;
-+ } else {
-+ Atom states[ 1 ] = { state };
-+ XChangeProperty( w->x11Display(), w->winId(), qt_net_wm_state, XA_ATOM, 32, PropModeReplace,
-+ (unsigned char *) states, set ? 1 : 0 );
-+ }
-+ if (data)
-+ XFree(data);
-+ }
-+}
-+
- void qt_x11_create_wm_client_leader()
- {
- if ( qt_x11_wm_client_leader ) return;
-@@ -1912,6 +1965,7 @@ void qt_init_internal( int *argcptr, cha
- qt_x11_intern_atom( "_NET_WM_STATE_MODAL", &qt_net_wm_state_modal );
- qt_x11_intern_atom( "_NET_WM_STATE_MAXIMIZED_VERT", &qt_net_wm_state_max_v );
- qt_x11_intern_atom( "_NET_WM_STATE_MAXIMIZED_HORZ", &qt_net_wm_state_max_h );
-+ qt_x11_intern_atom( "_NET_WM_STATE_FULLSCREEN", &qt_net_wm_state_fullscreen );
- qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE", &qt_net_wm_window_type );
- qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_NORMAL",
- &qt_net_wm_window_type_normal );
-@@ -3357,6 +3411,7 @@ int QApplication::x11ProcessEvent( XEven
- &after, &data);
-
- bool isMaximized = FALSE;
-+ bool isFullScreen = FALSE;
- if (e == Success && ret == XA_ATOM && format == 32 &&
- nitems > 0) {
- Atom *states = (Atom *) data;
-@@ -3366,8 +3421,9 @@ int QApplication::x11ProcessEvent( XEven
- if (states[i] == qt_net_wm_state_max_v ||
- states[i] == qt_net_wm_state_max_h) {
- isMaximized = TRUE;
-- break;
-- }
-+ } else if (states[i] == qt_net_wm_state_fullscreen) {
-+ isFullScreen = TRUE;
-+ }
- }
- }
-
-@@ -3375,6 +3431,21 @@ int QApplication::x11ProcessEvent( XEven
- widget->setWState(WState_Maximized);
- else
- widget->clearWState(WState_Maximized);
-+
-+ if( qt_net_supports(qt_net_wm_state_fullscreen)) {
-+ if( !isFullScreen && widget->isFullScreen()) {
-+ // if there was QWidget::showFullScreen( bool ), that
-+ // wouldn't mess with maximize state etc., this could be just
-+ // widget->showFullScreen( false )
-+ widget->topData()->fullscreen = 0;
-+ QEvent e( QEvent::ShowNormal );
-+ QApplication::sendSpontaneousEvent( widget, &e );
-+ } else if( isFullScreen && !widget->isFullScreen()) {
-+ widget->topData()->fullscreen = 1;
-+ QEvent e( QEvent::ShowFullScreen );
-+ QApplication::sendSpontaneousEvent( widget, &e );
-+ }
-+ }
-
- if (data)
- XFree(data);
---- src/kernel/qwidget.cpp.sav 2003-08-06 18:41:22.000000000 +0200
-+++ src/kernel/qwidget.cpp 2003-08-06 18:42:18.000000000 +0200
-@@ -5716,11 +5716,19 @@ void QWidget::reparent( QWidget *parent
- strange effects on desktop changes or when the user raises other
- windows.
-
-- Future X11 window managers that follow modern post-ICCCM
-- specifications may support full-screen mode properly.
-+ X11 window managers that follow modern post-ICCCM
-+ specifications support full-screen mode properly.
-
- \sa showNormal(), showMaximized(), show(), hide(), isVisible()
- */
-+
-+#if defined(Q_WS_X11)
-+#include <X11/X.h>
-+extern Atom qt_net_wm_state_fullscreen;
-+extern bool qt_net_supports(Atom);
-+extern void qt_net_change_state(const QWidget*,Atom,bool);
-+#endif
-+
- #if (QT_VERSION-0 >= 0x040000)
- #error "QWidget::showFullScreen() should be virtual (see change #16156)"
- #endif
-@@ -5728,6 +5736,20 @@ void QWidget::showFullScreen()
- {
- if ( !isTopLevel() )
- return;
-+#if defined(Q_WS_X11)
-+ if( qt_net_supports(qt_net_wm_state_fullscreen)) {
-+ if( topData()->fullscreen ) {
-+ show();
-+ return;
-+ }
-+ qt_net_change_state(this,qt_net_wm_state_fullscreen,true);
-+ topData()->fullscreen = 1;
-+ show();
-+ QEvent e( QEvent::ShowFullScreen );
-+ QApplication::sendEvent( this, &e );
-+ return;
-+ }
-+#endif
- if ( topData()->fullscreen ) {
- show();
- raise();
---- src/kernel/qwidget_x11.cpp.sav 2003-08-06 18:41:22.000000000 +0200
-+++ src/kernel/qwidget_x11.cpp 2003-08-06 18:42:18.000000000 +0200
-@@ -111,6 +111,7 @@ extern Atom qt_net_wm_state;
- extern Atom qt_net_wm_state_modal;
- extern Atom qt_net_wm_state_max_v;
- extern Atom qt_net_wm_state_max_h;
-+extern Atom qt_net_wm_state_fullscreen;
- extern Atom qt_net_wm_state_stays_on_top;
- extern Atom qt_net_wm_window_type;
- extern Atom qt_net_wm_window_type_normal;
-@@ -126,6 +127,7 @@ extern bool qt_broken_wm;
-
- // defined in qapplication_x11.cpp
- extern bool qt_net_supports(Atom);
-+extern void qt_net_change_state(const QWidget*,Atom,bool);
- extern unsigned long *qt_net_virtual_root_list;
-
- #if defined (QT_TABLET_SUPPORT)
-@@ -1733,9 +1735,13 @@ void QWidget::showNormal()
- {
- if ( isTopLevel() ) {
- if ( topData()->fullscreen ) {
-- // when reparenting, preserve some widget flags
-- reparent( 0, topData()->savedFlags, QPoint(0,0) );
-- topData()->fullscreen = 0;
-+ if( qt_net_supports(qt_net_wm_state_fullscreen)) {
-+ qt_net_change_state(this,qt_net_wm_state_fullscreen,false);
-+ } else {
-+ // when reparenting, preserve some widget flags
-+ reparent( 0, topData()->savedFlags, QPoint(0,0) );
-+ topData()->fullscreen = 0;
-+ }
- }
- QRect r = topData()->normalGeometry;
- if ( r.width() >= 0 ) {
-@@ -1749,7 +1755,7 @@ void QWidget::showNormal()
- extra->topextra->fullscreen = 0;
- if ( !isVisible() ) {
- show();
-- } else {
-+ } else if( testWState( WState_Minimized )) {
- showWindow();
- }
- QEvent e( QEvent::ShowNormal );
diff --git a/x11-libs/qt/files/0027-dnd-leak.patch b/x11-libs/qt/files/0027-dnd-leak.patch
deleted file mode 100644
index 3629371bc954..000000000000
--- a/x11-libs/qt/files/0027-dnd-leak.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/kernel/qdnd_x11.cpp 23 Sep 2003 16:01:19 -0000 1.57
-+++ src/kernel/qdnd_x11.cpp 3 Oct 2003 16:37:31 -0000
-@@ -433,6 +433,7 @@ void qt_xdnd_cleanup()
- qt_xdnd_atom_numbers = 0;
- delete qt_xdnd_target_data;
- qt_xdnd_target_data = 0;
-+ delete noDropCursor;
- noDropCursor = 0;
- delete copyCursor;
- copyCursor = 0;
diff --git a/x11-libs/qt/files/0028-fix_sub_popup_crash.patch b/x11-libs/qt/files/0028-fix_sub_popup_crash.patch
deleted file mode 100644
index 04d66e6a8d03..000000000000
--- a/x11-libs/qt/files/0028-fix_sub_popup_crash.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/widgets/qpopupmenu.cpp 23 Jul 2003 18:14:02 -0000 1.55
-+++ src/widgets/qpopupmenu.cpp 5 Oct 2003 23:30:38 -0000
-@@ -302,6 +302,8 @@ QPopupMenu::QPopupMenu( QWidget *parent,
-
- QPopupMenu::~QPopupMenu()
- {
-+ hidePopups();
-+
- if ( syncMenu == this ) {
- qApp->exit_loop();
- syncMenu = 0;
diff --git a/x11-libs/qt/files/digest-qt-3.2.1 b/x11-libs/qt/files/digest-qt-3.2.1
deleted file mode 100644
index bdba907c9968..000000000000
--- a/x11-libs/qt/files/digest-qt-3.2.1
+++ /dev/null
@@ -1 +0,0 @@
-MD5 9ae022ffe7603ec34aba150f6cca257a qt-x11-free-3.2.1.tar.bz2 13981279
diff --git a/x11-libs/qt/files/digest-qt-3.2.2-r1 b/x11-libs/qt/files/digest-qt-3.2.2-r1
deleted file mode 100644
index b164363232cf..000000000000
--- a/x11-libs/qt/files/digest-qt-3.2.2-r1
+++ /dev/null
@@ -1 +0,0 @@
-MD5 77d6e71e603fa54b9898d3364ef42aef qt-x11-free-3.2.2.tar.bz2 13943674
diff --git a/x11-libs/qt/files/qt-3.2.2-crash-fix.patch b/x11-libs/qt/files/qt-3.2.2-crash-fix.patch
deleted file mode 100644
index 5c3fcb20a348..000000000000
--- a/x11-libs/qt/files/qt-3.2.2-crash-fix.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/kernel/qapplication_x11.cpp.sav 2003-09-28 20:59:02.000000000 +0200
-+++ src/kernel/qapplication_x11.cpp 2003-10-05 22:47:42.000000000 +0200
-@@ -3148,9 +3148,12 @@ int QApplication::x11ClientMessage(QWidg
- QWhatsThis::enterWhatsThisMode();
- #endif // QT_NO_WHATSTHIS
- } else if ( a == qt_net_wm_ping ) {
-- event->xclient.window = QPaintDevice::x11AppRootWindow( w->x11Screen() );
-- XSendEvent( event->xclient.display, event->xclient.window,
-- False, SubstructureNotifyMask|SubstructureRedirectMask, event );
-+ // avoid receiving replies
-+ if( event->xclient.window != QPaintDevice::x11AppRootWindow( w->x11Screen())) {
-+ event->xclient.window = QPaintDevice::x11AppRootWindow( w->x11Screen() );
-+ XSendEvent( event->xclient.display, event->xclient.window,
-+ False, SubstructureNotifyMask|SubstructureRedirectMask, event );
-+ }
- }
- } else if ( event->xclient.message_type == qt_qt_scrolldone ) {
- widget->translateScrollDoneEvent(event);
diff --git a/x11-libs/qt/qt-3.2.1.ebuild b/x11-libs/qt/qt-3.2.1.ebuild
deleted file mode 100644
index 6dd08dd7ec9e..000000000000
--- a/x11-libs/qt/qt-3.2.1.ebuild
+++ /dev/null
@@ -1,176 +0,0 @@
-# Copyright 1999-2003 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-3.2.1.ebuild,v 1.11 2004/01/07 00:04:56 agriffis Exp $
-
-DESCRIPTION="QT version ${PV}"
-HOMEPAGE="http://www.trolltech.com/"
-SRC_URI="ftp://ftp.trolltech.com/qt/source/qt-x11-free-${PV}.tar.bz2"
-
-LICENSE="QPL-1.0 | GPL-2"
-SLOT="3"
-KEYWORDS="~x86 ~ppc ~sparc ia64 ~alpha"
-IUSE="cups nas postgres opengl mysql odbc gif"
-
-DEPEND="virtual/x11
- media-libs/libpng
- media-libs/lcms
- media-libs/jpeg
- >=media-libs/libmng-1.0.0
- >=media-libs/freetype-2
- virtual/xft
- !<kde-base/kdelibs-3.1.4
- nas? ( >=media-libs/nas-1.4.1 )
- odbc? ( >=dev-db/unixODBC-2.0 )
- mysql? ( >=dev-db/mysql-3.2.10 )
- opengl? ( virtual/opengl virtual/glu )
- postgres? ( >=dev-db/postgresql-7.2 )"
-RDEPEND="${DEPEND}"
-
-S=${WORKDIR}/qt-x11-free-${PV}
-
-QTBASE=/usr/qt/3
-export QTDIR=${S}
-
-src_unpack() {
- unpack ${A}
-
- export QTDIR=${S}
- cd ${S}
-
- cp configure configure.orig
- sed -e 's:read acceptance:acceptance=yes:' configure.orig > configure
-
- cd mkspecs/linux-g++
- # use env's $CC, $CXX
- if [ -n "$CXX" ]; then
- einfo 'Using environment definition of $CXX'
- cp qmake.conf qmake.conf.orig
- sed -e "s:= g++:= ${CXX}:" qmake.conf.orig > qmake.conf
- fi
- if [ -n "$CC" ]; then
- einfo 'Using environment definition of $CC'
- cp qmake.conf qmake.conf.orig
- sed -e "s:= gcc:= ${CC}:" qmake.conf.orig > qmake.conf
- fi
-
- # hppa and alpha people, please review the following
-
- # hppa need some additional flags
- if [ "${ARCH}" = "hppa" ]; then
- echo "QMAKE_CFLAGS += -fPIC -ffunction-sections" >> qmake.conf
- echo "QMAKE_CXXFLAGS += -fPIC -ffunction-sections" >> qmake.conf
- echo "QMAKE_LFLAGS += -ffunction-sections -Wl,--stub-group-size=25000" >> qmake.conf
- fi
-
- # on alpha we need to compile everything with -fPIC
- if [ ${ARCH} == "alpha" ]; then
- cp qmake.conf qmake.conf.orig
- sed -e "s:= -O2:= -O2 -fPIC:" qmake.conf.orig > qmake.conf
- cat >> ${S}/tools/designer/editor/editor.pro <<_EOF_
-QMAKE_CFLAGS += -fPIC
-QMAKE_CXXFLAGS += -fPIC
-_EOF_
- fi
-}
-
-src_compile() {
- export QTDIR=${S}
- export SYSCONF=${QTBASE}/etc/settings
- LD_LIBRARY_PATH_OLD=${LD_LIBRARY_PATH}
- export LD_LIBRARY_PATH=${S}/lib:${LD_LIBRARY_PATH}
-
- # fix #11144; qt wants to create lock files etc. in that directory
- [ -d "$QTBASE/etc/settings" ] && addwrite "$QTBASE/etc/settings"
- [ ! -d "$QTBASE/etc/settings" ] && dodir ${QTBASE}/etc/settings
-
- export LDFLAGS="-ldl"
-
- use cups || myconf="${myconf} -no-cups"
- use nas && myconf="${myconf} -system-nas-sound"
- use gif && myconf="${myconf} -qt-gif"
- use mysql && myconf="${myconf} -plugin-sql-mysql -I/usr/include/mysql -L/usr/lib/mysql"
- use postgres && myconf="${myconf} -plugin-sql-psql -I/usr/include/postgresql/server"
- use odbc && myconf="${myconf} -plugin-sql-odbc"
- use opengl && myconf="${myconf} -enable-module=opengl" || myconf="${myconf} -disable-opengl"
- use debug && myconf="${myconf} -debug" || myconf="${myconf} -release -no-g++-exceptions"
- use xinerama && myconf="${myconf} -xinerama"
-
- # avoid wasting time building things we won't install
- #rm -rf tutorial examples
-
- export YACC='byacc -d'
-
- ./configure -sm -thread -stl -system-zlib -system-libjpeg -verbose \
- -qt-imgfmt-{jpeg,mng,png} -tablet -system-libmng \
- -system-libpng -ldl -lpthread -xft -platform linux-g++ -xplatform \
- linux-g++ -xrender -prefix ${D}${QTBASE} -fast ${myconf} || die
-
- export QTDIR=${S}
- emake src-qmake src-moc sub-src sub-tools || die
- export LD_LIBRARY_PATH=${LD_LIBRARY_PATH_OLD}
-}
-
-src_install() {
- export QTDIR=${S}
-
- # binaries
- into $QTBASE
- dobin bin/*
-
- # libraries
- dolib lib/libqt-mt.so.3.2.1 lib/libqui.so.1.0.0 lib/lib{editor,qassistantclient,designer}.a
- cd ${D}$QTBASE/lib
- for x in libqui.so ; do
- ln -s $x.1.0.0 $x.1.0
- ln -s $x.1.0 $x.1
- ln -s $x.1 $x
- done
-
- # version symlinks - 3.2.1->3.2->3->.so
- ln -s libqt-mt.so.3.2.1 libqt-mt.so.3.2
- ln -s libqt-mt.so.3.2 libqt-mt.so.3
- ln -s libqt-mt.so.3 libqt-mt.so
-
- # libqt -> libqt-mt symlinks
- ln -s libqt-mt.so.3.2.1 libqt.so.3.2.1
- ln -s libqt-mt.so.3.2 libqt.so.3.2
- ln -s libqt-mt.so.3 libqt.so.3
- ln -s libqt-mt.so libqt.so
-
- # includes
- cd ${S}
- dodir ${QTBASE}/include/private
- cp include/* ${D}/${QTBASE}/include/
- cp include/private/* ${D}/${QTBASE}/include/private/
-
- # misc
- insinto /etc/env.d
- doins ${FILESDIR}/{45qt3,50qtdir3}
-
- dodir ${QTBASE}/tools/designer/templates
-
- cd ${S}/doc
- dodir ${QTBASE}/doc
- for x in html flyers; do
- cp -r $x ${D}/${QTBASE}/doc
- done
-
- cp -r ${S}/doc/man ${D}/${QTBASE}
- cp -r ${S}/examples ${D}/${QTBASE}
- cp -r ${S}/tutorial ${D}/${QTBASE}
-
- # misc build reqs
- dodir ${QTBASE}/mkspecs
- cp -R ${S}/mkspecs/linux-g++ ${D}/${QTBASE}/mkspecs/
-
- sed -e "s:${S}:${QTBASE}:g" \
- ${S}/.qmake.cache > ${D}${QTBASE}/.qmake.cache
-
- # plugins
- cd ${S}
- plugins=`find plugins -name "lib*.so" -print`
- for x in $plugins; do
- insinto ${QTBASE}/`dirname $x`
- doins $x
- done
-}
diff --git a/x11-libs/qt/qt-3.2.2-r1.ebuild b/x11-libs/qt/qt-3.2.2-r1.ebuild
deleted file mode 100644
index 003d23caa8aa..000000000000
--- a/x11-libs/qt/qt-3.2.2-r1.ebuild
+++ /dev/null
@@ -1,209 +0,0 @@
-# Copyright 1999-2003 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt/qt-3.2.2-r1.ebuild,v 1.3 2004/01/07 00:04:56 agriffis Exp $
-
-SRCTYPE="free"
-DESCRIPTION="QT version ${PV}"
-HOMEPAGE="http://www.trolltech.com/"
-SRC_URI="ftp://ftp.trolltech.com/qt/source/qt-x11-${SRCTYPE}-${PV}.tar.bz2"
-
-LICENSE="QPL-1.0 | GPL-2"
-SLOT="3"
-KEYWORDS="x86 ~ppc ia64 alpha"
-IUSE="cups nas postgres opengl mysql odbc gif doc"
-
-DEPEND="virtual/x11
- media-libs/libpng
- media-libs/lcms
- media-libs/jpeg
- >=media-libs/libmng-1.0.0
- >=media-libs/freetype-2
- virtual/xft
- !<kde-base/kdelibs-3.1.4
- nas? ( >=media-libs/nas-1.4.1 )
- odbc? ( >=dev-db/unixODBC-2.0 )
- mysql? ( >=dev-db/mysql-3.2.10 )
- opengl? ( virtual/opengl virtual/glu )
- postgres? ( >=dev-db/postgresql-7.2 )"
-RDEPEND="${DEPEND}"
-
-S=${WORKDIR}/qt-x11-${SRCTYPE}-${PV}
-
-QTBASE=/usr/qt/3
-export QTDIR=${S}
-
-src_unpack() {
- unpack ${A}
-
- export QTDIR=${S}
- cd ${S}
-
- cp configure configure.orig
- sed -e 's:read acceptance:acceptance=yes:' configure.orig > configure
-
- cd mkspecs/linux-g++
- # use env's $CC, $CXX
- if [ -n "$CXX" ]; then
- einfo 'Using environment definition of $CXX'
- cp qmake.conf qmake.conf.orig
- sed -e "s:= g++:= ${CXX}:" qmake.conf.orig > qmake.conf
- fi
- if [ -n "$CC" ]; then
- einfo 'Using environment definition of $CC'
- cp qmake.conf qmake.conf.orig
- sed -e "s:= gcc:= ${CC}:" qmake.conf.orig > qmake.conf
- fi
-
- # hppa and alpha people, please review the following
-
- # hppa need some additional flags
- if [ "${ARCH}" = "hppa" ]; then
- echo "QMAKE_CFLAGS += -fPIC -ffunction-sections" >> qmake.conf
- echo "QMAKE_CXXFLAGS += -fPIC -ffunction-sections" >> qmake.conf
- echo "QMAKE_LFLAGS += -ffunction-sections -Wl,--stub-group-size=25000" >> qmake.conf
- fi
-
- # on alpha we need to compile everything with -fPIC
- if [ ${ARCH} == "alpha" ]; then
- cp qmake.conf qmake.conf.orig
- sed -e "s:= -O2:= -O2 -fPIC:" qmake.conf.orig > qmake.conf
- cat >> ${S}/tools/designer/editor/editor.pro <<_EOF_
-QMAKE_CFLAGS += -fPIC
-QMAKE_CXXFLAGS += -fPIC
-_EOF_
- fi
-
- cd ${S}
- epatch ${FILESDIR}/0001-dnd_optimization.patch
- epatch ${FILESDIR}/0002-dnd_active_window_fix.patch
- epatch ${FILESDIR}/0003-qmenubar_fitts_law.patch
- epatch ${FILESDIR}/0004-qiconview_etc_ctrl_selecting.patch
- epatch ${FILESDIR}/0009-window_group.patch
- epatch ${FILESDIR}/0011-listview_keys.patch
- epatch ${FILESDIR}/0013-qtabwidget-less_flicker.patch
- epatch ${FILESDIR}/0014-qiconview-autoscroll.patch
- epatch ${FILESDIR}/0015-qiconview-finditem.patch
- epatch ${FILESDIR}/0016-qiconview-rebuildcontainer.patch
- epatch ${FILESDIR}/0017-qiconview-ctrl_rubber.patch
- epatch ${FILESDIR}/0018-qlistview-paintcell.patch
- epatch ${FILESDIR}/0019-qlistview-adjustcolumn.patch
- epatch ${FILESDIR}/0020-designer-deletetabs.patch
- epatch ${FILESDIR}/0021-qiconview-dragalittle.patch
- epatch ${FILESDIR}/0022-qdragobject-hotspot.patch
- epatch ${FILESDIR}/0024-fix_enter_leave_notify.patch
- epatch ${FILESDIR}/0026-netwm-fullscreen.patch
- epatch ${FILESDIR}/0027-dnd-leak.patch
- epatch ${FILESDIR}/0028-fix_sub_popup_crash.patch
-
- epatch ${FILESDIR}/${P}-crash-fix.patch
-}
-
-src_compile() {
- export QTDIR=${S}
- export SYSCONF=${QTBASE}/etc/settings
- LD_LIBRARY_PATH_OLD=${LD_LIBRARY_PATH}
- export LD_LIBRARY_PATH=${S}/lib:${LD_LIBRARY_PATH}
-
- # fix #11144; qt wants to create lock files etc. in that directory
- [ -d "$QTBASE/etc/settings" ] && addwrite "$QTBASE/etc/settings"
- [ ! -d "$QTBASE/etc/settings" ] && dodir ${QTBASE}/etc/settings
-
- export LDFLAGS="-ldl"
-
- use cups || myconf="${myconf} -no-cups"
- use nas && myconf="${myconf} -system-nas-sound"
- use gif && myconf="${myconf} -qt-gif"
- use mysql && myconf="${myconf} -plugin-sql-mysql -I/usr/include/mysql -L/usr/lib/mysql"
- use postgres && myconf="${myconf} -plugin-sql-psql -I/usr/include/postgresql/server"
- use odbc && myconf="${myconf} -plugin-sql-odbc"
- use opengl && myconf="${myconf} -enable-module=opengl" || myconf="${myconf} -disable-opengl"
- use debug && myconf="${myconf} -debug" || myconf="${myconf} -release -no-g++-exceptions"
- use xinerama && myconf="${myconf} -xinerama"
-
- export YACC='byacc -d'
-
- ./configure -sm -thread -stl -system-zlib -system-libjpeg -verbose \
- -qt-imgfmt-{jpeg,mng,png} -tablet -system-libmng \
- -system-libpng -ldl -lpthread -xft -platform linux-g++ -xplatform \
- linux-g++ -xrender -prefix ${D}${QTBASE} -plugindir ${QTBASE}/plugins \
- -docdir ${QTBASE}/doc -translationdir ${QTBASE}/translations \
- -datadir ${QTBASE} -fast ${myconf} || die
-
- export QTDIR=${S}
- emake src-qmake src-moc sub-src sub-tools || die
- export LD_LIBRARY_PATH=${LD_LIBRARY_PATH_OLD}
-}
-
-src_install() {
- export QTDIR=${S}
-
- # binaries
- into $QTBASE
- dobin bin/*
-
- # libraries
- dolib lib/libqt-mt.so.3.2.2 lib/libqui.so.1.0.0 lib/lib{editor,qassistantclient,designercore}.a
- cd ${D}/$QTBASE/lib
- for x in libqui.so ; do
- ln -s $x.1.0.0 $x.1.0
- ln -s $x.1.0 $x.1
- ln -s $x.1 $x
- done
-
- # version symlinks - 3.2.1->3.2->3->.so
- ln -s libqt-mt.so.3.2.2 libqt-mt.so.3.2
- ln -s libqt-mt.so.3.2 libqt-mt.so.3
- ln -s libqt-mt.so.3 libqt-mt.so
-
- # libqt -> libqt-mt symlinks
- ln -s libqt-mt.so.3.2.2 libqt.so.3.2.2
- ln -s libqt-mt.so.3.2 libqt.so.3.2
- ln -s libqt-mt.so.3 libqt.so.3
- ln -s libqt-mt.so libqt.so
-
- # includes
- cd ${S}
- dodir ${QTBASE}/include/private
- cp include/* ${D}/${QTBASE}/include/
- cp include/private/* ${D}/${QTBASE}/include/private/
-
- # misc
- insinto /etc/env.d
- doins ${FILESDIR}/{45qt3,50qtdir3}
-
- dodir ${QTBASE}/tools/designer/templates
- cd ${S}
- cp tools/designer/templates/* ${D}/${QTBASE}/tools/designer/templates
-
- dodir ${QTBASE}/translations
- cd ${S}
- cp translations/* ${D}/${QTBASE}/translations
-
- dodir ${QTBASE}/doc
-
- if [ `use doc` ]; then
- cd ${S}/doc
- for x in html flyers; do
- cp -r $x ${D}/${QTBASE}/doc
- done
-
- cp -r ${S}/doc/man ${D}/${QTBASE}
- cp -r ${S}/examples ${D}/${QTBASE}
- cp -r ${S}/tutorial ${D}/${QTBASE}
- fi
-
- # misc build reqs
- dodir ${QTBASE}/mkspecs
- cp -R ${S}/mkspecs/linux-g++ ${D}/${QTBASE}/mkspecs/
-
- sed -e "s:${S}:${QTBASE}:g" \
- ${S}/.qmake.cache > ${D}${QTBASE}/.qmake.cache
-
- # plugins
- cd ${S}
- plugins=`find plugins -name "lib*.so" -print`
- for x in $plugins; do
- insinto ${QTBASE}/`dirname $x`
- doins $x
- done
-}