[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.0/kdelibs/kdeui/widgets
From: Marc Mutz <mutz () kde ! org>
Date: 2008-02-26 17:08:58
Message-ID: 1204045738.623983.10459.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 779621 by mutz:
Fix KTab{Widget,Bar}'s egoistic DnD behaviour. Patch as posted on k-c-d
M +15 -2 ktabbar.cpp
M +10 -2 ktabwidget.cpp
--- branches/KDE/4.0/kdelibs/kdeui/widgets/ktabbar.cpp #779620:779621
@@ -279,7 +279,21 @@
void KTabBar::dragEnterEvent( QDragEnterEvent *event )
{
- event->setAccepted( true );
+ int tab = selectTab( event->pos() );
+ if ( tab != -1 ) {
+ bool accept = false;
+ // The receivers of the testCanDecode() signal has to adjust
+ // 'accept' accordingly.
+ emit testCanDecode( event, accept );
+ if ( accept && tab != currentIndex() ) {
+ d->mDragSwitchTab = tab;
+ d->mActivateDragSwitchTabTimer->start( QApplication::doubleClickInterval() * 2 );
+ }
+
+ event->setAccepted( accept );
+ return;
+ }
+
QTabBar::dragEnterEvent( event );
}
@@ -300,7 +314,6 @@
return;
}
- event->setAccepted( false );
QTabBar::dragMoveEvent( event );
}
--- branches/KDE/4.0/kdelibs/kdeui/widgets/ktabwidget.cpp #779620:779621
@@ -312,7 +312,16 @@
void KTabWidget::dragEnterEvent( QDragEnterEvent *event )
{
- event->setAccepted( true );
+ if ( d->isEmptyTabbarSpace( event->pos() ) ) {
+ bool accept = false;
+ // The receivers of the testCanDecode() signal has to adjust
+ // 'accept' accordingly.
+ emit testCanDecode( event, accept);
+
+ event->setAccepted( accept );
+ return;
+ }
+
QTabWidget::dragEnterEvent( event );
}
@@ -328,7 +337,6 @@
return;
}
- event->setAccepted( false );
QTabWidget::dragMoveEvent( event );
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic