diff --git a/.gitignore b/.gitignore index 1533ca9..a8ce311 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /QGnomePlatform-0.6.90.tar.gz /QGnomePlatform-0.7.0.tar.gz /QGnomePlatform-0.7.1.tar.gz +/QGnomePlatform-0.8.0.tar.gz diff --git a/qgnomeplatform-double-click-improvements.patch b/qgnomeplatform-double-click-improvements.patch deleted file mode 100644 index f712ede..0000000 --- a/qgnomeplatform-double-click-improvements.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 0a9e409563e8fa8caee04b60922de5283c0e08a1 Mon Sep 17 00:00:00 2001 -From: Jan Grulich -Date: Mon, 22 Feb 2021 11:48:02 +0100 -Subject: Improve double-click to maximize reliability - - -diff --git a/decoration/qgnomeplatformdecoration.cpp b/decoration/qgnomeplatformdecoration.cpp -index c8b381c..a979ab7 100644 ---- a/decoration/qgnomeplatformdecoration.cpp -+++ b/decoration/qgnomeplatformdecoration.cpp -@@ -360,6 +360,24 @@ bool QGnomePlatformDecoration::clickButton(Qt::MouseButtons b, Button btn) - return false; - } - -+bool QGnomePlatformDecoration::doubleClickButton(Qt::MouseButtons b, const QPointF &local, const QDateTime ¤tTime) -+{ -+ if (b & Qt::LeftButton) { -+ const qint64 clickInterval = m_lastButtonClick.msecsTo(currentTime); -+ m_lastButtonClick = currentTime; -+ const int doubleClickDistance = m_hints->hint(QPlatformTheme::MouseDoubleClickDistance).toInt(); -+ const QPointF posDiff = m_lastButtonClickPosition - local; -+ if ((clickInterval <= m_hints->hint(QPlatformTheme::MouseDoubleClickInterval).toInt()) && -+ ((posDiff.x() <= doubleClickDistance && posDiff.x() >= -doubleClickDistance) && ((posDiff.y() <= doubleClickDistance && posDiff.y() >= -doubleClickDistance)))) { -+ return true; -+ } -+ -+ m_lastButtonClickPosition = local; -+ } -+ -+ return false; -+} -+ - bool QGnomePlatformDecoration::handleMouse(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global, Qt::MouseButtons b, Qt::KeyboardModifiers mods) - { - Q_UNUSED(global); -@@ -459,31 +477,26 @@ void QGnomePlatformDecoration::processMouseTop(QWaylandInputDevice *inputDevice, - processMouseRight(inputDevice, local, b, mods); - } else if (closeButtonRect().contains(local)) { - updateButtonHoverState(Button::Close); -- if (clickButton(b, Close)) -+ if (clickButton(b, Close)) { - QWindowSystemInterface::handleCloseEvent(window()); -+ } - } else if (m_hints->titlebarButtons().testFlag(GnomeHintsSettings::MaximizeButton) && maximizeButtonRect().contains(local)) { - updateButtonHoverState(Button::Maximize); -- if (clickButton(b, Maximize)) -+ if (clickButton(b, Maximize)) { - window()->setWindowStates(window()->windowStates() ^ Qt::WindowMaximized); -+ } - } else if (m_hints->titlebarButtons().testFlag(GnomeHintsSettings::MinimizeButton) && minimizeButtonRect().contains(local)) { - updateButtonHoverState(Button::Minimize); -- if (clickButton(b, Minimize)) -+ if (clickButton(b, Minimize)) { - window()->setWindowState(Qt::WindowMinimized); -+ } -+ } else if (doubleClickButton(b, local, currentDateTime)) { -+ window()->setWindowStates(window()->windowStates() ^ Qt::WindowMaximized); - } else { -- if (clickButton(b, Maximize)) { -- const int doubleClickDistance = m_hints->hint(QPlatformTheme::MouseDoubleClickDistance).toInt(); -- QPointF posDiff = m_lastButtonClickPosition - local; -- if ((m_lastButtonClick.msecsTo(currentDateTime) <= m_hints->hint(QPlatformTheme::MouseDoubleClickInterval).toInt()) && -- ((posDiff.x() <= doubleClickDistance && posDiff.x() >= -doubleClickDistance) && ((posDiff.y() <= doubleClickDistance && posDiff.y() >= -doubleClickDistance)))) -- window()->setWindowStates(window()->windowStates() ^ Qt::WindowMaximized); -- m_lastButtonClick = currentDateTime; -- m_lastButtonClickPosition = local; -- } else { - #if QT_CONFIG(cursor) -- waylandWindow()->restoreMouseCursor(inputDevice); -+ waylandWindow()->restoreMouseCursor(inputDevice); - #endif -- startMove(inputDevice,b); -- } -+ startMove(inputDevice,b); - } - } - -diff --git a/decoration/qgnomeplatformdecoration.h b/decoration/qgnomeplatformdecoration.h -index c656b55..c8c793e 100644 ---- a/decoration/qgnomeplatformdecoration.h -+++ b/decoration/qgnomeplatformdecoration.h -@@ -60,6 +60,7 @@ private: - void processMouseLeft(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b,Qt::KeyboardModifiers mods); - void processMouseRight(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b,Qt::KeyboardModifiers mods); - bool clickButton(Qt::MouseButtons b, Button btn); -+ bool doubleClickButton(Qt::MouseButtons b, const QPointF &local, const QDateTime ¤tTime); - bool updateButtonHoverState(Button hoveredButton); - - QRectF closeButtonRect() const; -@@ -84,6 +85,7 @@ private: - // For double-click support - QDateTime m_lastButtonClick; - QPointF m_lastButtonClickPosition; -+ Button m_doubleClicking = None; - - QStaticText m_windowTitle; - Button m_clicking = None; diff --git a/qgnomeplatform.spec b/qgnomeplatform.spec index 3e0a8c3..5f8bed5 100644 --- a/qgnomeplatform.spec +++ b/qgnomeplatform.spec @@ -1,7 +1,7 @@ Name: qgnomeplatform -Version: 0.7.1 -Release: 2%{?dist} +Version: 0.8.0 +Release: 1%{?dist} Summary: Qt Platform Theme aimed to accommodate Gnome settings License: LGPLv2+ @@ -9,20 +9,22 @@ URL: https://github.com/MartinBriza/QGnomePlatform Source0: https://github.com/MartinBriza/QGnomePlatform/archive/%{version}/QGnomePlatform-%{version}.tar.gz # Upstream patches -Patch0: qgnomeplatform-double-click-improvements.patch +Patch0: qgnomeplatform-use-more-updated-window-states-value.patch +Patch1: qgnomeplatform-add-some-additional-support-for-highcontrast-adwaita-variant.patch -BuildRequires: make +BuildRequires: make BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(udev) BuildRequires: pkgconfig(xkbcommon) BuildRequires: gtk3-devel +BuildRequires: gsettings-desktop-schemas-devel BuildRequires: libinput-devel BuildRequires: libXrender-devel BuildRequires: qt5-qtbase-devel >= 5.12.0 BuildRequires: qt5-qtbase-static >= 5.12.0 BuildRequires: qt5-qtwayland-devel >= 5.12.0 -BuildRequires: libadwaita-qt5-devel >= 1.1.90 +BuildRequires: libadwaita-qt5-devel >= 1.3.1 Requires: adwaita-qt5%{?_isa} BuildRequires: qt5-qtbase-private-devel @@ -39,24 +41,25 @@ modifying them - making them fit into the environment as well as possible. %build -mkdir %{_target_platform} -pushd %{_target_platform} -%{qmake_qt5} .. -popd - -%make_build -C %{_target_platform} +%cmake +%cmake_build %install -make install INSTALL_ROOT=%{buildroot} -C %{_target_platform} +%cmake_install %files %doc README.md %license LICENSE -%{_qt5_libdir}/qt5/plugins/platformthemes/libqgnomeplatform.so +%{_qt5_libdir}/libqgnomeplatform.so +%{_qt5_libdir}/qt5/plugins/platformthemes/libqgnomeplatformtheme.so %{_qt5_libdir}/qt5/plugins/wayland-decoration-client/libqgnomeplatformdecoration.so %changelog +* Mon Aug 23 2021 Jan Grulich - 0.8.0-1 +- 0.8.0 + Resolves: bz#1968290 + * Tue Aug 10 2021 Mohan Boddu - 0.7.1-2 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688 diff --git a/sources b/sources index 1ca7eaa..a1f8b77 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (QGnomePlatform-0.7.1.tar.gz) = 7e3ba774ee1387604f4c66bd75f9fb4c5305f4553886132e8e3991a3e42564844a7eafb1361e0e8c64743746e315c07b22c11c133be95c1c53afb62c062bfc6e +SHA512 (QGnomePlatform-0.8.0.tar.gz) = e862b84024ad77976b52cbacf1f920acaa60d2bfcb8f261f1215f2e5fb2dbe6d99e10aa425be70fa2dd324ac4d8c5b85958d68fae4fb7f9728caf097aa1bd102