Add support for double-click to maximize windows
This commit is contained in:
parent
2e5862e09e
commit
2758922fbe
68
qgnomeplatform-double-click-to-maximize.patch
Normal file
68
qgnomeplatform-double-click-to-maximize.patch
Normal file
@ -0,0 +1,68 @@
|
||||
diff --git a/decoration/qgnomeplatformdecoration.cpp b/decoration/qgnomeplatformdecoration.cpp
|
||||
index 107d2c3..3da478f 100644
|
||||
--- a/decoration/qgnomeplatformdecoration.cpp
|
||||
+++ b/decoration/qgnomeplatformdecoration.cpp
|
||||
@@ -102,6 +102,8 @@ QGnomePlatformDecoration::QGnomePlatformDecoration()
|
||||
initializeButtonPixmaps();
|
||||
initializeColors();
|
||||
|
||||
+ m_lastButtonClick = QDateTime::currentDateTime();
|
||||
+
|
||||
QTextOption option(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||
option.setWrapMode(QTextOption::NoWrap);
|
||||
m_windowTitle.setTextOption(option);
|
||||
@@ -411,6 +413,8 @@ void QGnomePlatformDecoration::processMouseTop(QWaylandInputDevice *inputDevice,
|
||||
{
|
||||
Q_UNUSED(mods);
|
||||
|
||||
+ QDateTime currentDateTime = QDateTime::currentDateTime();
|
||||
+
|
||||
if (!closeButtonRect().contains(local) && !maximizeButtonRect().contains(local) && !minimizeButtonRect().contains(local)) {
|
||||
updateButtonHoverState(Button::None);
|
||||
}
|
||||
@@ -452,10 +456,20 @@ void QGnomePlatformDecoration::processMouseTop(QWaylandInputDevice *inputDevice,
|
||||
if (clickButton(b, Minimize))
|
||||
window()->setWindowState(Qt::WindowMinimized);
|
||||
} 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 600e082..cb5904b 100644
|
||||
--- a/decoration/qgnomeplatformdecoration.h
|
||||
+++ b/decoration/qgnomeplatformdecoration.h
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
#include <QtWaylandClient/private/qwaylandabstractdecoration_p.h>
|
||||
|
||||
+#include <QDateTime>
|
||||
+
|
||||
class GnomeHintsSettings;
|
||||
class QPixmap;
|
||||
|
||||
@@ -77,6 +79,9 @@ private:
|
||||
bool m_maximizeButtonHovered;
|
||||
bool m_minimizeButtonHovered;
|
||||
|
||||
+ // For double-click support
|
||||
+ QDateTime m_lastButtonClick;
|
||||
+ QPointF m_lastButtonClickPosition;
|
||||
|
||||
QStaticText m_windowTitle;
|
||||
Button m_clicking = None;
|
||||
@ -1,7 +1,7 @@
|
||||
|
||||
Name: qgnomeplatform
|
||||
Version: 0.5
|
||||
Release: 14%{?dist}
|
||||
Release: 15%{?dist}
|
||||
Summary: Qt Platform Theme aimed to accommodate Gnome settings
|
||||
|
||||
License: LGPLv2+
|
||||
@ -11,6 +11,7 @@ Source0: https://github.com/MartinBriza/QGnomePlatform/archive/%{version}
|
||||
# Upstream patches
|
||||
Patch0: qgnomeplatform-gnome-decorations.patch
|
||||
Patch1: qgnomeplatform-fix-cursor-size.patch
|
||||
Patch2: qgnomeplatform-double-click-to-maximize.patch
|
||||
|
||||
BuildRequires: pkgconfig(gio-2.0)
|
||||
BuildRequires: pkgconfig(udev)
|
||||
@ -59,6 +60,9 @@ make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}
|
||||
%{_qt5_libdir}/qt5/plugins/wayland-decoration-client/libqgnomeplatformdecoration.so
|
||||
|
||||
%changelog
|
||||
* Fri Sep 27 2019 Jan Grulich <jgrulich@redhat.com> - 0.5-15
|
||||
- Add support for double-click to maximize windows
|
||||
|
||||
* Wed Sep 25 2019 Jan Grulich <jgrulich@redhat.com> - 0.5-14
|
||||
- rebuild (qt5)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user