summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kate/app/katefilelist.cpp14
-rw-r--r--kate/app/katefilelist.h2
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;
};