From 5b5a3743500b1521a20c32a48d2e0aa392c8222b Mon Sep 17 00:00:00 2001 From: peri4 Date: Sun, 24 Sep 2023 12:10:52 +0300 Subject: [PATCH] edockwidget maximize button logic improvement --- libs/application/edockwidget.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/libs/application/edockwidget.cpp b/libs/application/edockwidget.cpp index ea94345..3a5cc68 100644 --- a/libs/application/edockwidget.cpp +++ b/libs/application/edockwidget.cpp @@ -4,6 +4,7 @@ #include #include +#include EDockWidget::EDockWidget(const QString & title, QWidget * parent, Qt::WindowFlags flags): QDockWidget(title, parent, flags) { @@ -150,15 +151,22 @@ void EDockWidget::updateStyle() { void EDockWidget::dockClicked() { - if (!isFloating() && isMaximized()) showNormal(); - setFloating(!isFloating()); + if (isFloating() && isMaximized()) { + showNormal(); + QTimer::singleShot(0, [this]() { setFloating(!isFloating()); }); + } else + setFloating(!isFloating()); } void EDockWidget::maximize() { - if (!isFloating()) setFloating(true); - if (isMaximized()) - showNormal(); - else - showMaximized(); + if (!isFloating()) { + setFloating(true); + QTimer::singleShot(0, [this]() { showMaximized(); }); + } else { + if (isMaximized()) + showNormal(); + else + showMaximized(); + } }