0.8.0
Resolves: bz#1968290
This commit is contained in:
parent
7b8abf67bf
commit
9814303749
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
||||
@ -1,97 +0,0 @@
|
||||
From 0a9e409563e8fa8caee04b60922de5283c0e08a1 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Grulich <jgrulich@redhat.com>
|
||||
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;
|
||||
@ -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 <jgrulich@redhat.com> - 0.8.0-1
|
||||
- 0.8.0
|
||||
Resolves: bz#1968290
|
||||
|
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 0.7.1-2
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
||||
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (QGnomePlatform-0.7.1.tar.gz) = 7e3ba774ee1387604f4c66bd75f9fb4c5305f4553886132e8e3991a3e42564844a7eafb1361e0e8c64743746e315c07b22c11c133be95c1c53afb62c062bfc6e
|
||||
SHA512 (QGnomePlatform-0.8.0.tar.gz) = e862b84024ad77976b52cbacf1f920acaa60d2bfcb8f261f1215f2e5fb2dbe6d99e10aa425be70fa2dd324ac4d8c5b85958d68fae4fb7f9728caf097aa1bd102
|
||||
|
||||
Loading…
Reference in New Issue
Block a user