diff options
-rw-r--r-- | kate/app/katefilelist.cpp | 14 | ||||
-rw-r--r-- | kate/app/katefilelist.h | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/kate/app/katefilelist.cpp b/kate/app/katefilelist.cpp index 98857b3c3..9cf4b172d 100644 --- a/kate/app/katefilelist.cpp +++ b/kate/app/katefilelist.cpp @@ -176,6 +176,8 @@ void KateFileList::keyPressEvent(TQKeyEvent *e) { // returning void KateFileList::contentsMousePressEvent( TQMouseEvent *e ) { + m_lastMouseDownPos = e->pos(); + if ( ! itemAt( contentsToViewport( e->pos() ) ) ) return; @@ -259,7 +261,17 @@ void KateFileList::slotActivateView( TQListViewItem *item ) if ( ! item || item->rtti() != RTTI_KateFileListItem ) return; - viewManager->activateView( ((KateFileListItem *)item)->documentNumber() ); + KateFileListItem *i = ((KateFileListItem*)item); + const KateDocumentInfo *info = KateDocManager::self()->documentInfo(i->document()); + + if (info && info->modifiedOnDisc) { + // Simulate mouse button release, otherwise the paused DND operation + // will reactivate as soon as the mouse re-enters the list view! + TQMouseEvent e(TQEvent::MouseButtonRelease, m_lastMouseDownPos, Qt::LeftButton, 0); + contentsMouseReleaseEvent(&e); + } + + viewManager->activateView( i->documentNumber() ); } void KateFileList::slotModChanged (Kate::Document *doc) diff --git a/kate/app/katefilelist.h b/kate/app/katefilelist.h index 49987edd1..75d93915c 100644 --- a/kate/app/katefilelist.h +++ b/kate/app/katefilelist.h @@ -166,6 +166,8 @@ class KateFileList : public TDEListView TQListViewItem *m_clickedMenuItem; + TQPoint m_lastMouseDownPos; + class ToolTip *m_tooltip; }; |