diff --git a/src/FluFrameless.cpp b/src/FluFrameless.cpp index d4f6117c..4f3ba47f 100644 --- a/src/FluFrameless.cpp +++ b/src/FluFrameless.cpp @@ -270,6 +270,8 @@ void FluFrameless::componentComplete() { auto geometry = window()->screen()->availableGeometry(); RECT rect; SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0); + minmaxInfo->ptMinTrackSize.x = window()->minimumWidth() * pixelRatio + offsetXY.x(); + minmaxInfo->ptMinTrackSize.y = window()->minimumHeight() * pixelRatio + offsetXY.y() + _appbar->height() * pixelRatio; minmaxInfo->ptMaxPosition.x = rect.left - offsetXY.x(); minmaxInfo->ptMaxPosition.y = rect.top - offsetXY.x(); minmaxInfo->ptMaxSize.x = qRound(geometry.width() * pixelRatio) + offsetXY.x() * 2; @@ -429,7 +431,6 @@ void FluFrameless::setHitTestVisible(QQuickItem *val) { } } - void FluFrameless::_setWindowTopmost(bool topmost) { #ifdef Q_OS_WIN HWND hwnd = reinterpret_cast(window()->winId()); diff --git a/src/Qt5/imports/FluentUI/Controls/FluWindowDialog.qml b/src/Qt5/imports/FluentUI/Controls/FluWindowDialog.qml index 7446fee2..918e77aa 100644 --- a/src/Qt5/imports/FluentUI/Controls/FluWindowDialog.qml +++ b/src/Qt5/imports/FluentUI/Controls/FluWindowDialog.qml @@ -32,9 +32,9 @@ FluWindow { } } } - function showDialog(){ - var x = transientParent.x + (transientParent.width - width)/2 - var y = transientParent.y + (transientParent.height - height)/2 + function showDialog(offsetX=0,offsetY=0){ + var x = transientParent.x + (transientParent.width - width)/2 + offsetX + var y = transientParent.y + (transientParent.height - height)/2 + offsetY control.stayTop = Qt.binding(function(){return transientParent.stayTop}) control.setGeometry(x,y,width,height) control.visibility = Window.Windowed diff --git a/src/Qt6/imports/FluentUI/Controls/FluWindowDialog.qml b/src/Qt6/imports/FluentUI/Controls/FluWindowDialog.qml index 57a27586..fbc1edb6 100644 --- a/src/Qt6/imports/FluentUI/Controls/FluWindowDialog.qml +++ b/src/Qt6/imports/FluentUI/Controls/FluWindowDialog.qml @@ -32,9 +32,9 @@ FluWindow { } } } - function showDialog(){ - var x = transientParent.x + (transientParent.width - width)/2 - var y = transientParent.y + (transientParent.height - height)/2 + function showDialog(offsetX=0,offsetY=0){ + var x = transientParent.x + (transientParent.width - width)/2 + offsetX + var y = transientParent.y + (transientParent.height - height)/2 + offsetY control.stayTop = Qt.binding(function(){return transientParent.stayTop}) control.setGeometry(x,y,width,height) control.visibility = Window.Windowed