edockwidget maximize button logic improvement

This commit is contained in:
2023-09-24 12:10:52 +03:00
parent 1a2f5ceefc
commit 5b5a374350

View File

@@ -4,6 +4,7 @@
#include <QEvent> #include <QEvent>
#include <QStyle> #include <QStyle>
#include <QTimer>
EDockWidget::EDockWidget(const QString & title, QWidget * parent, Qt::WindowFlags flags): QDockWidget(title, parent, flags) { EDockWidget::EDockWidget(const QString & title, QWidget * parent, Qt::WindowFlags flags): QDockWidget(title, parent, flags) {
@@ -150,15 +151,22 @@ void EDockWidget::updateStyle() {
void EDockWidget::dockClicked() { void EDockWidget::dockClicked() {
if (!isFloating() && isMaximized()) showNormal(); if (isFloating() && isMaximized()) {
setFloating(!isFloating()); showNormal();
QTimer::singleShot(0, [this]() { setFloating(!isFloating()); });
} else
setFloating(!isFloating());
} }
void EDockWidget::maximize() { void EDockWidget::maximize() {
if (!isFloating()) setFloating(true); if (!isFloating()) {
if (isMaximized()) setFloating(true);
showNormal(); QTimer::singleShot(0, [this]() { showMaximized(); });
else } else {
showMaximized(); if (isMaximized())
showNormal();
else
showMaximized();
}
} }