From b8b8ef7405e81dfcbe63e5a1b84cf773b6a36096 Mon Sep 17 00:00:00 2001 From: Jekyll Wu Date: Mon, 14 May 2012 14:48:55 +0800 Subject: [PATCH] Support dragging tab out of current window and into its own window Thanks to makis marimpis for the patch! REVIEW: 104933 FEATURE: 56749 FIXED-IN: 4.9.0 --- src/ViewContainer.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ViewContainer.cpp b/src/ViewContainer.cpp index 1a0148e9..8070bfbd 100644 --- a/src/ViewContainer.cpp +++ b/src/ViewContainer.cpp @@ -620,9 +620,6 @@ void TabbedViewContainer::startTabDrag(int tab) // start drag, if drag-and-drop is successful the view at 'tab' will be // deleted - // - // if the tab was dragged onto another application - // which blindly accepted the drop then ignore it if (drag->exec() == Qt::MoveAction && drag->target() != 0) { // Deleting the view may cause the view container to be deleted, which // will also delete the QDrag object. @@ -635,6 +632,15 @@ void TabbedViewContainer::startTabDrag(int tab) // FIXME: Resolve this properly drag->setParent(0); removeView(view); + } else { + // if the tab was dragged onto another application + // which blindly accepted the drop, then detach the tab to achieve + // the effect of "dragging tab into its own window" + // + // It feels unnatural to do the detach when this is only one tab + // in the tabbar + if (_tabBar->count() > 1) + emit detachTab(this, view); } }