21#include "core/DragController_p.h"
22#include "core/Logging_p.h"
23#include "core/Utils_p.h"
33 window->
setObjectName(QStringLiteral(
"_docks_IndicatorWindow_Overlay"));
40 , m_rubberBand(
Config::self().viewFactory()->createRubberBand(
41 rubberBandIsTopLevel() ? nullptr : dropArea->view()))
44 if (rubberBandIsTopLevel())
51 delete m_indicatorWindow;
56 return m_indicatorWindow->
hover(globalPos);
75 updateWindowPosition();
87 return m_indicatorWindow;
90void ClassicDropIndicatorOverlay::raiseIndicators()
92 m_indicatorWindow->
raise();
128 m_rubberBand->
raise();
134 if (rubberBandIsTopLevel())
149 KDDW_ERROR(
"ClassicIndicators::setCurrentDropLocation: group is null. location={}, isHovered={}, dropArea->widgets={}", location,
isHovered(),
m_dropArea->
items().size());
164 auto windowBeingDragged = DragController::instance()->windowBeingDragged();
171 if (rubberBandIsTopLevel()) {
172 m_rubberBand->
raise();
177void ClassicDropIndicatorOverlay::updateWindowPosition()
180 if (m_indicatorWindow->
isWindow()) {
189bool ClassicDropIndicatorOverlay::rubberBandIsTopLevel()
const
194Rect ClassicDropIndicatorOverlay::geometryForRubberband(Rect localRect)
const
196 if (!rubberBandIsTopLevel())
199 Point topLeftLocal = localRect.topLeft();
202 localRect.moveTopLeft(topLeftGlobal);
KDDockWidgets::Location locationToMultisplitterLocation(DropLocation location)
static Core::ClassicIndicatorWindowViewInterface * createIndicatorWindow(ClassicDropIndicatorOverlay *classicIndicators, Core::View *parent)
Application-wide config to tune certain behaviours of the framework.
A MultiSplitter with support for drop indicators when hovering over.