From 07933f9991865f97e7e9c452f0fdb6492850cdfc Mon Sep 17 00:00:00 2001 From: cutefishd Date: Thu, 29 Apr 2021 20:14:06 +0800 Subject: [PATCH] Fix window size --- qml/main.qml | 16 ++++++++-------- src/launcher.cpp | 18 ++++++++++++------ src/launcher.h | 1 + 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/qml/main.qml b/qml/main.qml index 543bb64..c23b763 100755 --- a/qml/main.qml +++ b/qml/main.qml @@ -10,12 +10,11 @@ import FishUI 1.0 as FishUI Item { id: root - // The window manager is forced to set the window size. - // width: launcher.screenRect.width - // height: launcher.screenRect.height + width: launcher.screenRect.width + height: launcher.screenRect.height - property real horizontalSpacing: root.width * 0.01 * Screen.devicePixelRatio - property real verticalSpacing: root.height * 0.01 * Screen.devicePixelRatio + property real horizontalSpacing: launcher.screenRect.width * 0.01 * Screen.devicePixelRatio + property real verticalSpacing: launcher.screenRect.height * 0.01 * Screen.devicePixelRatio Wallpaper { id: backend @@ -25,10 +24,11 @@ Item { id: wallpaper anchors.fill: parent source: "file://" + backend.wallpaper - sourceSize: Qt.size(width, height) + sourceSize: Qt.size(auncher.screenRect.width, + launcher.screenRect.height) fillMode: Image.PreserveAspectCrop - clip: true - cache: true + asynchronous: false + cache: false smooth: false } diff --git a/src/launcher.cpp b/src/launcher.cpp index 5b815e8..385171e 100644 --- a/src/launcher.cpp +++ b/src/launcher.cpp @@ -30,14 +30,13 @@ Launcher::Launcher(QQuickView *w) : QQuickView(w) { - m_screenRect = qApp->primaryScreen()->geometry(); m_screenAvailableRect = qApp->primaryScreen()->availableGeometry(); new LauncherAdaptor(this); engine()->rootContext()->setContextProperty("launcher", this); - setFlags(Qt::FramelessWindowHint); + setFlags(Qt::FramelessWindowHint | Qt::CoverWindow); setResizeMode(QQuickView::SizeRootObjectToView); setClearBeforeRendering(true); setScreen(qApp->primaryScreen()); @@ -80,10 +79,11 @@ QRect Launcher::screenAvailableRect() void Launcher::onGeometryChanged() { - m_screenRect = qApp->primaryScreen()->geometry(); - setGeometry(qApp->primaryScreen()->geometry()); - - emit screenRectChanged(); + if (m_screenRect != qApp->primaryScreen()->geometry()) { + m_screenRect = qApp->primaryScreen()->geometry(); + setGeometry(m_screenRect); + emit screenRectChanged(); + } } void Launcher::onAvailableGeometryChanged(const QRect &geometry) @@ -99,6 +99,12 @@ void Launcher::showEvent(QShowEvent *e) QQuickView::showEvent(e); } +void Launcher::resizeEvent(QResizeEvent *e) +{ + // The window manager forces the size. + e->ignore(); +} + void Launcher::onActiveChanged() { if (!isActive()) diff --git a/src/launcher.h b/src/launcher.h index a6b96c2..2bcd543 100644 --- a/src/launcher.h +++ b/src/launcher.h @@ -49,6 +49,7 @@ private slots: protected: void showEvent(QShowEvent *e) override; + void resizeEvent(QResizeEvent *e) override; private: void onActiveChanged();