X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ed2d352c42a6d517d4f29b3582c0e00aa34fe647..8e3addb7e73122a4c89ef347b03f714ff75a253a:/src/dolphindockwidget.cpp diff --git a/src/dolphindockwidget.cpp b/src/dolphindockwidget.cpp index 84902eb9c..5e79e0316 100644 --- a/src/dolphindockwidget.cpp +++ b/src/dolphindockwidget.cpp @@ -6,6 +6,7 @@ #include "dolphindockwidget.h" +#include #include namespace @@ -33,8 +34,7 @@ public: QSize minimumSizeHint() const override { - const int border = style()->pixelMetric(QStyle::PM_DockWidgetTitleBarButtonMargin); - return QSize(border, border); + return QSize(0, 0); } QSize sizeHint() const override @@ -65,7 +65,7 @@ void DolphinDockWidget::setLocked(bool lock) m_dockTitleBar = new DolphinDockTitleBar(this); } setTitleBarWidget(m_dockTitleBar); - setFeatures(QDockWidget::NoDockWidgetFeatures); + setFeatures(QDockWidget::DockWidgetClosable); } else { setTitleBarWidget(nullptr); setFeatures(DefaultDockWidgetFeatures); @@ -78,5 +78,21 @@ bool DolphinDockWidget::isLocked() const return m_locked; } +bool DolphinDockWidget::event(QEvent *event) +{ + switch (event->type()) { + case QEvent::Show: + case QEvent::Hide: + if (event->spontaneous()) { + // The Dolphin window has been minimized or restored. We do not want this to be interpreted like a user was toggling the visibility of this widget. + // We return here so no QDockWidget::visibilityChanged() signal is emitted. This does not seem to happen either way on Wayland. + return true; + } + [[fallthrough]]; + default: + return QDockWidget::event(event); + } +} + #include "dolphindockwidget.moc" #include "moc_dolphindockwidget.cpp"