Simplify code

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
This commit is contained in:
Yuhang Zhao 2021-03-18 09:12:19 +08:00
parent 2823cbe34a
commit 6adbefa814
5 changed files with 24 additions and 31 deletions

View File

@ -635,17 +635,7 @@ bool FramelessHelperWin::nativeEventFilter(const QByteArray &eventType, void *me
const int factor = (isTop || isBottom) ? 2 : 1;
const bool isLeft = (localMouse.x() <= (bw * factor));
const bool isRight = (localMouse.x() >= (ww - (bw * factor)));
const bool fixedSize = [window] {
if (window->flags().testFlag(Qt::MSWindowsFixedSizeDialogHint)) {
return true;
}
const QSize minSize = window->minimumSize();
const QSize maxSize = window->maximumSize();
if (!minSize.isEmpty() && !maxSize.isEmpty() && minSize == maxSize) {
return true;
}
return false;
}();
const bool fixedSize = Utilities::isWindowFixedSize(window);
const auto getBorderValue = [fixedSize](int value) -> int {
// HTBORDER: non-resizable window border.
return fixedSize ? HTBORDER : value;

View File

@ -163,15 +163,7 @@ bool FramelessWindowsManager::getResizable(const QWindow *window)
return false;
}
#ifdef Q_OS_WINDOWS
if (window->flags().testFlag(Qt::MSWindowsFixedSizeDialogHint)) {
return false;
}
const QSize minSize = window->minimumSize();
const QSize maxSize = window->maximumSize();
if (!minSize.isEmpty() && !maxSize.isEmpty() && minSize == maxSize) {
return false;
}
return true;
return Utilities::isWindowFixedSize(window);
#else
return framelessHelper()->getResizable(window);
#endif

View File

@ -402,3 +402,22 @@ bool Utilities::shouldUseNativeTitleBar()
{
return qEnvironmentVariableIsSet(_flh_global::_flh_useNativeTitleBar_flag);
}
bool Utilities::isWindowFixedSize(const QWindow *window)
{
Q_ASSERT(window);
if (!window) {
return false;
}
#ifdef Q_OS_WINDOWS
if (window->flags().testFlag(Qt::MSWindowsFixedSizeDialogHint)) {
return true;
}
#endif
const QSize minSize = window->minimumSize();
const QSize maxSize = window->maximumSize();
if (!minSize.isEmpty() && !maxSize.isEmpty() && (minSize == maxSize)) {
return true;
}
return false;
}

View File

@ -73,6 +73,8 @@ FRAMELESSHELPER_EXPORT bool forceEnableTraditionalBlur();
FRAMELESSHELPER_EXPORT bool forceDisableWallpaperBlur();
FRAMELESSHELPER_EXPORT bool shouldUseNativeTitleBar();
FRAMELESSHELPER_EXPORT bool isWindowFixedSize(const QWindow *window);
#ifdef Q_OS_WINDOWS
// Windows specific
FRAMELESSHELPER_EXPORT bool isWin7OrGreater();

View File

@ -752,17 +752,7 @@ void Utilities::displaySystemMenu(const QWindow *window, const QPoint &pos)
return (window->windowState() == Qt::WindowFullScreen);
}();
const bool isNormal = !isMin && !isMax && !isFull;
const auto isFix = [window]{
if (window->flags().testFlag(Qt::MSWindowsFixedSizeDialogHint)) {
return true;
}
const QSize minSize = window->minimumSize();
const QSize maxSize = window->maximumSize();
if (!minSize.isEmpty() && !maxSize.isEmpty() && (minSize == maxSize)) {
return true;
}
return false;
}();
const bool isFix = isWindowFixedSize(window);
if (isFix || isMax || isFull) {
SetMenuItemInfoW(hMenu, SC_SIZE, FALSE, &mii);
SetMenuItemInfoW(hMenu, SC_MAXIMIZE, FALSE, &mii);