Fix "normal geometry" not being restored
When restoring a maximized window, calling QWidget::showNormal() on it wouldn't set it's previous non-maximized size. QWidget::normalGeometry() doesn't have a setter, so use private API.
This commit is contained in:
@@ -27,6 +27,8 @@
|
||||
#include <QMouseEvent>
|
||||
#include <QWindow>
|
||||
|
||||
#include <QtWidgets/private/qwidget_p.h>
|
||||
|
||||
using namespace KDDockWidgets;
|
||||
|
||||
QWidgetAdapter::QWidgetAdapter(QWidget *parent, Qt::WindowFlags f)
|
||||
@@ -129,4 +131,18 @@ QWidget *KDDockWidgets::Private::widgetForWindow(QWindow *window)
|
||||
return window->property("kddockwidgets_qwidget").value<QWidget *>();
|
||||
}
|
||||
|
||||
void QWidgetAdapter::setNormalGeometry(QRect geo)
|
||||
{
|
||||
if (isNormalWindowState(windowState())) {
|
||||
setGeometry(geo);
|
||||
} else {
|
||||
QWidgetPrivate *priv = QWidgetPrivate::get(this);
|
||||
if (priv->extra && priv->extra->topextra) {
|
||||
priv->topData()->normalGeometry = geo;
|
||||
} else {
|
||||
qWarning() << Q_FUNC_INFO << "Failing to set normal geometry";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LayoutGuestWidget::~LayoutGuestWidget() = default;
|
||||
|
||||
Reference in New Issue
Block a user