Make DragArea::drop() deal in WindowBeingDragged()
Preparing for wayland case.
This commit is contained in:
@@ -236,12 +236,18 @@ bool DropArea::drop(WindowBeingDragged *droppedWindow, QPoint globalPos)
|
||||
return false;
|
||||
}
|
||||
|
||||
return drop(floatingWindow, acceptingFrame, droploc);
|
||||
return drop(droppedWindow, acceptingFrame, droploc);
|
||||
}
|
||||
|
||||
bool DropArea::drop(FloatingWindow *droppedWindow, Frame *acceptingFrame,
|
||||
bool DropArea::drop(WindowBeingDragged *draggedWindow, Frame *acceptingFrame,
|
||||
DropIndicatorOverlayInterface::DropLocation droploc)
|
||||
{
|
||||
FloatingWindow *droppedWindow = draggedWindow ? draggedWindow->floatingWindow()
|
||||
: nullptr;
|
||||
|
||||
if (!droppedWindow)
|
||||
return false;
|
||||
|
||||
bool result = true;
|
||||
const bool needToFocusNewlyDroppedWidgets = Config::self().flags() & Config::Flag_TitleBarIsFocusable;
|
||||
const DockWidgetBase::List droppedDockWidgets = needToFocusNewlyDroppedWidgets ? droppedWindow->multiSplitter()->dockWidgets()
|
||||
|
||||
@@ -73,7 +73,7 @@ private:
|
||||
|
||||
template <typename T>
|
||||
bool validateAffinity(T *, Frame *acceptingFrame = nullptr) const;
|
||||
bool drop(FloatingWindow *droppedWindow, Frame *acceptingFrame, DropIndicatorOverlayInterface::DropLocation);
|
||||
bool drop(WindowBeingDragged *draggedWindow, Frame *acceptingFrame, DropIndicatorOverlayInterface::DropLocation);
|
||||
bool drop(QWidgetOrQuick *droppedwindow, KDDockWidgets::Location location, Frame *relativeTo);
|
||||
Frame *frameContainingPos(QPoint globalPos) const;
|
||||
void updateFloatingActions();
|
||||
|
||||
@@ -326,7 +326,8 @@ void TestCommon::tst_tabbingWithAffinities()
|
||||
{
|
||||
SetExpectedWarning ignoreWarning("Refusing to dock widget with incompatible affinity");
|
||||
auto dropArea = m1->dropArea();
|
||||
QVERIFY(!dropArea->drop(fw2, dw1->frame(), DropIndicatorOverlayInterface::DropLocation_Center));
|
||||
WindowBeingDragged wbd(fw2, fw2);
|
||||
QVERIFY(!dropArea->drop(&wbd, dw1->frame(), DropIndicatorOverlayInterface::DropLocation_Center));
|
||||
QVERIFY(dw1->window() != dw2->window());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user