Add missing patches
Resolves: bz#1968290
This commit is contained in:
parent
9814303749
commit
7187c09f46
@ -0,0 +1,205 @@
|
||||
From 221995e661a19053d6288ef5279bd5502d0f4c17 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Grulich <jgrulich@redhat.com>
|
||||
Date: Tue, 24 Aug 2021 13:30:26 +0200
|
||||
Subject: [PATCH] Add some additional support for HighContrast variants of
|
||||
Adwaita theme
|
||||
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
src/common/gnomesettings.cpp | 28 ++++++++++++++++++---
|
||||
src/common/gnomesettings.h | 1 +
|
||||
src/common/gnomesettings_p.h | 2 ++
|
||||
src/decoration/qgnomeplatformdecoration.cpp | 14 +++++++----
|
||||
src/decoration/qgnomeplatformdecoration.h | 4 +++
|
||||
6 files changed, 42 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index a2f9452..e6a9486 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -20,7 +20,7 @@ find_package(Qt5Gui ${QT_MIN_VERSION} CONFIG REQUIRED Private)
|
||||
find_package(Qt5ThemeSupport REQUIRED)
|
||||
|
||||
find_package(GSettingSchemas REQUIRED)
|
||||
-find_package(AdwaitaQt "1.3.0" REQUIRED)
|
||||
+find_package(AdwaitaQt "1.4.0" REQUIRED)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(GTK+3 REQUIRED IMPORTED_TARGET gtk+-3.0)
|
||||
diff --git a/src/common/gnomesettings.cpp b/src/common/gnomesettings.cpp
|
||||
index e35fb85..717cc9b 100644
|
||||
--- a/src/common/gnomesettings.cpp
|
||||
+++ b/src/common/gnomesettings.cpp
|
||||
@@ -102,6 +102,11 @@ bool GnomeSettings::isGtkThemeDarkVariant()
|
||||
return gnomeSettingsGlobal->isGtkThemeDarkVariant();
|
||||
}
|
||||
|
||||
+bool GnomeSettings::isGtkThemeHighContrastVariant()
|
||||
+{
|
||||
+ return gnomeSettingsGlobal->isGtkThemeHighContrastVariant();
|
||||
+}
|
||||
+
|
||||
QString GnomeSettings::gtkTheme()
|
||||
{
|
||||
return gnomeSettingsGlobal->gtkTheme();
|
||||
@@ -210,7 +215,11 @@ GnomeSettingsPrivate::GnomeSettingsPrivate(QObject *parent)
|
||||
loadTheme();
|
||||
loadTitlebar();
|
||||
|
||||
- m_palette = new QPalette(Adwaita::Colors::palette(m_gtkThemeDarkVariant ? Adwaita::ColorVariant::AdwaitaDark : Adwaita::ColorVariant::Adwaita));
|
||||
+ if (m_gtkThemeHighContrastVariant) {
|
||||
+ m_palette = new QPalette(Adwaita::Colors::palette(m_gtkThemeDarkVariant ? Adwaita::ColorVariant::AdwaitaHighcontrastInverse : Adwaita::ColorVariant::AdwaitaHighcontrast));
|
||||
+ } else {
|
||||
+ m_palette = new QPalette(Adwaita::Colors::palette(m_gtkThemeDarkVariant ? Adwaita::ColorVariant::AdwaitaDark : Adwaita::ColorVariant::Adwaita));
|
||||
+ }
|
||||
|
||||
if (m_canUseFileChooserPortal) {
|
||||
QTimer::singleShot(0, this, [this] () {
|
||||
@@ -290,6 +299,11 @@ bool GnomeSettingsPrivate::isGtkThemeDarkVariant() const
|
||||
return m_gtkThemeDarkVariant;
|
||||
}
|
||||
|
||||
+bool GnomeSettingsPrivate::isGtkThemeHighContrastVariant() const
|
||||
+{
|
||||
+ return m_gtkThemeHighContrastVariant;
|
||||
+}
|
||||
+
|
||||
QString GnomeSettingsPrivate::gtkTheme() const
|
||||
{
|
||||
return QString(m_gtkTheme);
|
||||
@@ -472,7 +486,11 @@ void GnomeSettingsPrivate::loadTheme()
|
||||
} else {
|
||||
qCDebug(QGnomePlatform) << "Theme name: " << m_gtkTheme;
|
||||
|
||||
- if (m_gtkTheme.toLower().contains("-dark")) {
|
||||
+ if (m_gtkTheme.toLower().startsWith("highcontrast")) {
|
||||
+ m_gtkThemeHighContrastVariant = true;
|
||||
+ }
|
||||
+
|
||||
+ if (m_gtkTheme.toLower().contains("-dark") || m_gtkTheme.toLower().endsWith("inverse")) {
|
||||
m_gtkThemeDarkVariant = true;
|
||||
}
|
||||
|
||||
@@ -481,7 +499,11 @@ void GnomeSettingsPrivate::loadTheme()
|
||||
} else {
|
||||
qCDebug(QGnomePlatform) << "Theme name: " << styleOverride;
|
||||
|
||||
- if (styleOverride.toLower().contains("-dark")) {
|
||||
+ if (styleOverride.toLower().startsWith("highcontrast")) {
|
||||
+ m_gtkThemeHighContrastVariant = true;
|
||||
+ }
|
||||
+
|
||||
+ if (styleOverride.toLower().contains("-dark") || styleOverride.toLower().endsWith("inverse")) {
|
||||
m_gtkThemeDarkVariant = true;
|
||||
}
|
||||
|
||||
diff --git a/src/common/gnomesettings.h b/src/common/gnomesettings.h
|
||||
index 1719e8b..c186eae 100644
|
||||
--- a/src/common/gnomesettings.h
|
||||
+++ b/src/common/gnomesettings.h
|
||||
@@ -54,6 +54,7 @@ public:
|
||||
static QVariant hint(QPlatformTheme::ThemeHint hint);
|
||||
static bool canUseFileChooserPortal();
|
||||
static bool isGtkThemeDarkVariant();
|
||||
+ static bool isGtkThemeHighContrastVariant();
|
||||
static QString gtkTheme();
|
||||
static TitlebarButtons titlebarButtons();
|
||||
static TitlebarButtonsPlacement titlebarButtonPlacement();
|
||||
diff --git a/src/common/gnomesettings_p.h b/src/common/gnomesettings_p.h
|
||||
index b5c1ebc..b268398 100644
|
||||
--- a/src/common/gnomesettings_p.h
|
||||
+++ b/src/common/gnomesettings_p.h
|
||||
@@ -50,6 +50,7 @@ public:
|
||||
QPalette *palette() const;
|
||||
bool canUseFileChooserPortal() const;
|
||||
bool isGtkThemeDarkVariant() const;
|
||||
+ bool isGtkThemeHighContrastVariant() const;
|
||||
QString gtkTheme() const;
|
||||
QVariant hint(QPlatformTheme::ThemeHint hint) const;
|
||||
TitlebarButtons titlebarButtons() const;
|
||||
@@ -80,6 +81,7 @@ private:
|
||||
bool m_usePortal;
|
||||
bool m_canUseFileChooserPortal = false;
|
||||
bool m_gtkThemeDarkVariant = false;
|
||||
+ bool m_gtkThemeHighContrastVariant = false;
|
||||
TitlebarButtons m_titlebarButtons = TitlebarButton::CloseButton;
|
||||
TitlebarButtonsPlacement m_titlebarButtonPlacement = TitlebarButtonsPlacement::RightPlacement;
|
||||
QString m_gtkTheme = nullptr;
|
||||
diff --git a/src/decoration/qgnomeplatformdecoration.cpp b/src/decoration/qgnomeplatformdecoration.cpp
|
||||
index 1129b4f..f6c95bb 100644
|
||||
--- a/src/decoration/qgnomeplatformdecoration.cpp
|
||||
+++ b/src/decoration/qgnomeplatformdecoration.cpp
|
||||
@@ -43,7 +43,6 @@
|
||||
|
||||
#include "gnomesettings.h"
|
||||
|
||||
-#include <AdwaitaQt/adwaitacolors.h>
|
||||
#include <AdwaitaQt/adwaitarenderer.h>
|
||||
|
||||
#include <QtGui/QColor>
|
||||
@@ -87,7 +86,12 @@ QGnomePlatformDecoration::QGnomePlatformDecoration()
|
||||
// Colors
|
||||
// TODO: move colors used for decorations to Adwaita-qt
|
||||
const bool darkVariant = GnomeSettings::isGtkThemeDarkVariant();
|
||||
- const QPalette &palette(Adwaita::Colors::palette(darkVariant ? Adwaita::ColorVariant::AdwaitaDark : Adwaita::ColorVariant::Adwaita));
|
||||
+ const bool highContrastVariant = GnomeSettings::isGtkThemeHighContrastVariant();
|
||||
+
|
||||
+ m_adwaitaVariant = darkVariant ? highContrastVariant ? Adwaita::ColorVariant::AdwaitaHighcontrastInverse : Adwaita::ColorVariant::AdwaitaDark :
|
||||
+ highContrastVariant ? Adwaita::ColorVariant::AdwaitaHighcontrast : Adwaita::ColorVariant::Adwaita;
|
||||
+
|
||||
+ const QPalette &palette(Adwaita::Colors::palette(m_adwaitaVariant));
|
||||
|
||||
m_foregroundColor = palette.color(QPalette::Active, QPalette::Foreground);
|
||||
m_foregroundInactiveColor = palette.color(QPalette::Inactive, QPalette::Foreground);
|
||||
@@ -500,7 +504,7 @@ void QGnomePlatformDecoration::paint(QPaintDevice *device)
|
||||
Adwaita::StyleOptions styleOptions(&p, buttonRect);
|
||||
styleOptions.setMouseOver(true);
|
||||
styleOptions.setSunken(m_clicking == Button::Close);
|
||||
- styleOptions.setColorVariant(GnomeSettings::isGtkThemeDarkVariant() ? Adwaita::ColorVariant::AdwaitaDark : Adwaita::ColorVariant::Adwaita);
|
||||
+ styleOptions.setColorVariant(m_adwaitaVariant);
|
||||
styleOptions.setColor(Adwaita::Colors::buttonBackgroundColor(styleOptions));
|
||||
styleOptions.setOutlineColor(Adwaita::Colors::buttonOutlineColor(styleOptions));
|
||||
Adwaita::Renderer::renderFlatRoundedButtonFrame(styleOptions);
|
||||
@@ -516,7 +520,7 @@ void QGnomePlatformDecoration::paint(QPaintDevice *device)
|
||||
Adwaita::StyleOptions styleOptions(&p, buttonRect);
|
||||
styleOptions.setMouseOver(true);
|
||||
styleOptions.setSunken(m_clicking == Button::Maximize || m_clicking == Button::Restore);
|
||||
- styleOptions.setColorVariant(GnomeSettings::isGtkThemeDarkVariant() ? Adwaita::ColorVariant::AdwaitaDark : Adwaita::ColorVariant::Adwaita);
|
||||
+ styleOptions.setColorVariant(m_adwaitaVariant);
|
||||
styleOptions.setColor(Adwaita::Colors::buttonBackgroundColor(styleOptions));
|
||||
styleOptions.setOutlineColor(Adwaita::Colors::buttonOutlineColor(styleOptions));
|
||||
Adwaita::Renderer::renderFlatRoundedButtonFrame(styleOptions);
|
||||
@@ -534,7 +538,7 @@ void QGnomePlatformDecoration::paint(QPaintDevice *device)
|
||||
Adwaita::StyleOptions styleOptions(&p, buttonRect);
|
||||
styleOptions.setMouseOver(true);
|
||||
styleOptions.setSunken(m_clicking == Button::Minimize);
|
||||
- styleOptions.setColorVariant(GnomeSettings::isGtkThemeDarkVariant() ? Adwaita::ColorVariant::AdwaitaDark : Adwaita::ColorVariant::Adwaita);
|
||||
+ styleOptions.setColorVariant(m_adwaitaVariant);
|
||||
styleOptions.setColor(Adwaita::Colors::buttonBackgroundColor(styleOptions));
|
||||
styleOptions.setOutlineColor(Adwaita::Colors::buttonOutlineColor(styleOptions));
|
||||
Adwaita::Renderer::renderFlatRoundedButtonFrame(styleOptions);
|
||||
diff --git a/src/decoration/qgnomeplatformdecoration.h b/src/decoration/qgnomeplatformdecoration.h
|
||||
index 4fdcdae..f95e313 100644
|
||||
--- a/src/decoration/qgnomeplatformdecoration.h
|
||||
+++ b/src/decoration/qgnomeplatformdecoration.h
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
#include <QtWaylandClient/private/qwaylandabstractdecoration_p.h>
|
||||
|
||||
+#include <AdwaitaQt/adwaitacolors.h>
|
||||
+
|
||||
#include <QtGlobal>
|
||||
|
||||
#include <QDateTime>
|
||||
@@ -92,6 +94,8 @@ private:
|
||||
|
||||
// Shadows
|
||||
QPixmap m_shadowPixmap;
|
||||
+
|
||||
+ Adwaita::ColorVariant m_adwaitaVariant;
|
||||
};
|
||||
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
||||
49
qgnomeplatform-use-more-updated-window-states-value.patch
Normal file
49
qgnomeplatform-use-more-updated-window-states-value.patch
Normal file
@ -0,0 +1,49 @@
|
||||
diff --git a/src/decoration/qgnomeplatformdecoration.cpp b/src/decoration/qgnomeplatformdecoration.cpp
|
||||
index 1129b4f..be4ac21 100644
|
||||
--- a/src/decoration/qgnomeplatformdecoration.cpp
|
||||
+++ b/src/decoration/qgnomeplatformdecoration.cpp
|
||||
@@ -178,7 +178,7 @@ QMargins QGnomePlatformDecoration::margins(MarginsType marginsType) const
|
||||
#else
|
||||
QMargins QGnomePlatformDecoration::margins() const
|
||||
{
|
||||
- if ((window()->windowStates() & Qt::WindowMaximized)) {
|
||||
+ if ((waylandWindow()->windowStates() & Qt::WindowMaximized)) {
|
||||
return QMargins(0, TITLEBAR_HEIGHT, 0, 0);
|
||||
}
|
||||
|
||||
@@ -371,7 +371,7 @@ void QGnomePlatformDecoration::paint(QPaintDevice *device)
|
||||
// * *
|
||||
// ********************************
|
||||
QPainterPath borderRect;
|
||||
- if (!(window()->windowStates() & Qt::WindowMaximized)) {
|
||||
+ if (!(waylandWindow()->windowStates() & Qt::WindowMaximized)) {
|
||||
borderRect.addRoundedRect(0, 0, surfaceRect.width(), margins().top() + 8, 10, 10);
|
||||
p.fillPath(borderRect.simplified(), borderColor);
|
||||
}
|
||||
@@ -389,7 +389,7 @@ void QGnomePlatformDecoration::paint(QPaintDevice *device)
|
||||
// * *
|
||||
// ********************************
|
||||
QPainterPath roundedRect;
|
||||
- if ((window()->windowStates() & Qt::WindowMaximized)) {
|
||||
+ if ((waylandWindow()->windowStates() & Qt::WindowMaximized)) {
|
||||
roundedRect.addRect(0, 0, surfaceRect.width(), margins().top() + 8);
|
||||
} else {
|
||||
roundedRect.addRoundedRect(WINDOW_BORDER_WIDTH, WINDOW_BORDER_WIDTH, surfaceRect.width() - margins().left() - margins().right(), margins().top() + 8, 8, 8);
|
||||
@@ -412,7 +412,7 @@ void QGnomePlatformDecoration::paint(QPaintDevice *device)
|
||||
// *| |*
|
||||
// *------------------------------*
|
||||
// ********************************
|
||||
- if (!(window()->windowStates() & Qt::WindowMaximized)) {
|
||||
+ if (!(waylandWindow()->windowStates() & Qt::WindowMaximized)) {
|
||||
QPainterPath borderPath;
|
||||
// Left
|
||||
borderPath.addRect(0, margins().top(), margins().left(), surfaceRect.height() - margins().top() - WINDOW_BORDER_WIDTH);
|
||||
@@ -522,7 +522,7 @@ void QGnomePlatformDecoration::paint(QPaintDevice *device)
|
||||
Adwaita::Renderer::renderFlatRoundedButtonFrame(styleOptions);
|
||||
}
|
||||
decorationButtonStyle.setRect(QRect(static_cast<int>(rect.x()) + (BUTTON_WIDTH / 4), static_cast<int>(rect.y()) + (BUTTON_WIDTH / 4), BUTTON_WIDTH / 2, BUTTON_WIDTH / 2));
|
||||
- const Adwaita::ButtonType buttonType = (window()->windowStates() & Qt::WindowMaximized) ? Adwaita::ButtonType::ButtonRestore : Adwaita::ButtonType::ButtonMaximize;
|
||||
+ const Adwaita::ButtonType buttonType = (waylandWindow()->windowStates() & Qt::WindowMaximized) ? Adwaita::ButtonType::ButtonRestore : Adwaita::ButtonType::ButtonMaximize;
|
||||
Adwaita::Renderer::renderDecorationButton(decorationButtonStyle, buttonType);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user