Added FloatingWidgetDragStartEvent to hide AutoHideContainer if user drags floating widget

This commit is contained in:
Uwe 2022-11-15 08:44:07 +01:00
parent b50e2017e6
commit 7f58877a47
4 changed files with 15 additions and 2 deletions

View File

@ -471,7 +471,7 @@ void CAutoHideDockContainer::setSize(int Size)
//============================================================================
bool CAutoHideDockContainer::eventFilter(QObject* watched, QEvent* event)
{
if (event->type() == QEvent::Resize)
if (event->type() == QEvent::Resize)
{
if (!d->ResizeHandle->isResizing())
{
@ -539,6 +539,10 @@ bool CAutoHideDockContainer::eventFilter(QObject* watched, QEvent* event)
collapseView(true);
}
}
else if (event->type() == internal::FloatingWidgetDragStartEvent)
{
collapseView(true);
}
return Super::eventFilter(watched, event);
}

View File

@ -406,7 +406,13 @@ struct FloatingDockContainerPrivate
void setState(eDragState StateId)
{
auto OldState = DraggingState;
DraggingState = StateId;
if (DraggingInactive == OldState && DraggingFloatingWidget == DraggingState)
{
qDebug() << "Start dragging floating widget " << internal::FloatingWidgetDragStartEvent;
qApp->postEvent(DockManager, new QEvent((QEvent::Type)internal::FloatingWidgetDragStartEvent));
}
}
void setWindowTitle(const QString &Text)
@ -1281,12 +1287,13 @@ void CFloatingDockContainer::moveEvent(QMoveEvent *event)
Super::moveEvent(event);
if (!d->IsResizing && event->spontaneous() && s_mousePressed)
{
d->DraggingState = DraggingFloatingWidget;
d->setState(DraggingFloatingWidget);
d->updateDropOverlays(QCursor::pos());
}
d->IsResizing = false;
}
//============================================================================
bool CFloatingDockContainer::event(QEvent *e)
{

View File

@ -53,6 +53,7 @@ namespace internal
#ifdef Q_OS_LINUX
static QString _window_manager;
static QHash<QString, xcb_atom_t> _xcb_atom_cache;
const int FloatingWidgetDragStartEvent = QEvent::registerEventType();
//============================================================================

View File

@ -151,6 +151,7 @@ static const bool RestoreTesting = true;
static const bool Restore = false;
static const char* const ClosedProperty = "close";
static const char* const DirtyProperty = "dirty";
extern const int FloatingWidgetDragStartEvent;
#ifdef Q_OS_LINUX
// Utils to directly communicate with the X server