Backport another upstream (Qt6) fixes and improvements to QGtk3Theme
This commit is contained in:
parent
a660cb2e27
commit
3ce2391866
52
0016-Fix-memory-leak-in-QGtk3Interface-themename.patch
Normal file
52
0016-Fix-memory-leak-in-QGtk3Interface-themename.patch
Normal file
@ -0,0 +1,52 @@
|
||||
From 233e7e6be35a5a455b6ecd7c15de8c9cfc70ca10 Mon Sep 17 00:00:00 2001
|
||||
From: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
|
||||
Date: Thu, 3 Aug 2023 16:09:49 +0200
|
||||
Subject: Fix memory leak in QGtk3Interface::themeName
|
||||
|
||||
Pick-to: 6.6 6.5
|
||||
Change-Id: Ib8c90f7ef66c095f0c1fc04f4cc72bf5eea72ddb
|
||||
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
|
||||
|
||||
diff --git a/src/plugins/platformthemes/gtk3/qgtk3interface.cpp b/src/plugins/platformthemes/gtk3/qgtk3interface.cpp
|
||||
index 21abea81..8e8fefb6 100644
|
||||
--- a/src/plugins/platformthemes/gtk3/qgtk3interface.cpp
|
||||
+++ b/src/plugins/platformthemes/gtk3/qgtk3interface.cpp
|
||||
@@ -477,15 +477,18 @@ QBrush QGtk3Interface::brush(QGtkWidget wtype, QGtkColorSource source, GtkStateF
|
||||
\internal
|
||||
\brief Returns the name of the current GTK theme.
|
||||
*/
|
||||
-const QString QGtk3Interface::themeName() const
|
||||
+QString QGtk3Interface::themeName() const
|
||||
{
|
||||
- gchar *theme_name;
|
||||
- GtkSettings *settings = gtk_settings_get_default();
|
||||
- if (!settings)
|
||||
- return QString();
|
||||
+ QString name;
|
||||
+
|
||||
+ if (GtkSettings *settings = gtk_settings_get_default()) {
|
||||
+ gchar *theme_name;
|
||||
+ g_object_get(settings, "gtk-theme-name", &theme_name, nullptr);
|
||||
+ name = QLatin1String(theme_name);
|
||||
+ g_free(theme_name);
|
||||
+ }
|
||||
|
||||
- g_object_get(settings, "gtk-theme-name", &theme_name, nullptr);
|
||||
- return QLatin1String(theme_name);
|
||||
+ return name;
|
||||
}
|
||||
|
||||
/*!
|
||||
diff --git a/src/plugins/platformthemes/gtk3/qgtk3interface_p.h b/src/plugins/platformthemes/gtk3/qgtk3interface_p.h
|
||||
index 42643e72..d9bf5c32 100644
|
||||
--- a/src/plugins/platformthemes/gtk3/qgtk3interface_p.h
|
||||
+++ b/src/plugins/platformthemes/gtk3/qgtk3interface_p.h
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
QIcon fileIcon(const QFileInfo &fileInfo) const;
|
||||
|
||||
// Return current GTK theme name
|
||||
- const QString themeName() const;
|
||||
+ QString themeName() const;
|
||||
|
||||
// Derive appearance from default colors
|
||||
Qt::Appearance appearanceByColors() const;
|
40
0017-Fix-disabled-button-color-in-Linux-x11-wayland.patch
Normal file
40
0017-Fix-disabled-button-color-in-Linux-x11-wayland.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From 4cffb3b5fbbad24fed26690c3e10c0332cb0b33f Mon Sep 17 00:00:00 2001
|
||||
From: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
|
||||
Date: Mon, 9 Oct 2023 13:17:19 +0200
|
||||
Subject: Fix disabled button color in Linux (X11/Wayland)
|
||||
|
||||
The palette mapping table (as read from gtk widget) maintained in
|
||||
QGtk3Storage misses information of QPalette::Button and
|
||||
QPalette::ButtonText role for QPalette::Disabled color group. This
|
||||
cause disabled button widget to be rendered with incorrect palette
|
||||
(such as in dark color scheme, light palette had been used).
|
||||
|
||||
This patch fixes this issue by extending palette mapping in
|
||||
QGtk3Storage for disabled color group of button role.
|
||||
|
||||
Fixes: QTBUG-113486
|
||||
Pick-to: 6.6.0 6.6 6.5
|
||||
Change-Id: Ied4b2650c92cc1cda58be69257945991013b276f
|
||||
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
|
||||
|
||||
diff --git a/src/plugins/platformthemes/gtk3/qgtk3storage.cpp b/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
index 1952ce278c..0017f55a45 100644
|
||||
--- a/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
+++ b/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
@@ -531,6 +531,8 @@ void QGtk3Storage::createMapping()
|
||||
ADD(Normal, Base);
|
||||
ADD(Inactive, Base);
|
||||
ADD(Inactive, Window);
|
||||
+ ADD(Disabled, Button);
|
||||
+ ADD(Disabled, Window);
|
||||
LIGHTER(Normal, Window, 125);
|
||||
ADD(Normal, Light);
|
||||
LIGHTER(Normal, Window, 70);
|
||||
@@ -543,6 +545,7 @@ void QGtk3Storage::createMapping()
|
||||
ADD(Disabled, Text);
|
||||
ADD(Disabled, WindowText);
|
||||
ADD(Inactive, ButtonText);
|
||||
+ ADD(Disabled, ButtonText);
|
||||
GTK(button, Text, NORMAL);
|
||||
ADD(Disabled, ButtonText);
|
||||
// special background colors
|
241
0018-Fix-inactive-palette-in-gtk3-theme.patch
Normal file
241
0018-Fix-inactive-palette-in-gtk3-theme.patch
Normal file
@ -0,0 +1,241 @@
|
||||
From a608a7c29886fd95ea8569776036673e6c7639f2 Mon Sep 17 00:00:00 2001
|
||||
From: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
|
||||
Date: Tue, 10 Oct 2023 16:07:07 +0200
|
||||
Subject: Fix inactive palette in gtk3 theme
|
||||
|
||||
In gtk3 theme, the inactive color group had been set with incorrect
|
||||
palette or not been set for some cases, which leads to glitch when
|
||||
moving application window. This is because inactive group palettes were
|
||||
applied during window movement and its expected to be set with correct
|
||||
palettes.
|
||||
|
||||
This patch fixes this issue by setting correct palette for inactive
|
||||
color group.
|
||||
|
||||
Fixes: QTBUG-112879
|
||||
Pick-to: 6.6 6.5
|
||||
Change-Id: I6658843626f322fee0ef99dfafb550956e3e0aee
|
||||
Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
|
||||
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
|
||||
|
||||
diff --git a/src/plugins/platformthemes/gtk3/qgtk3storage.cpp b/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
index 0017f55a45..bbc70c39a2 100644
|
||||
--- a/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
+++ b/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
@@ -524,93 +524,129 @@ void QGtk3Storage::createMapping()
|
||||
|
||||
|
||||
// System palette
|
||||
- // background color and calculate derivates
|
||||
- GTK(Default, Background, INSENSITIVE);
|
||||
- ADD(Normal, Window);
|
||||
- ADD(Normal, Button);
|
||||
- ADD(Normal, Base);
|
||||
- ADD(Inactive, Base);
|
||||
- ADD(Inactive, Window);
|
||||
- ADD(Disabled, Button);
|
||||
- ADD(Disabled, Window);
|
||||
- LIGHTER(Normal, Window, 125);
|
||||
- ADD(Normal, Light);
|
||||
- LIGHTER(Normal, Window, 70);
|
||||
- ADD(Normal, Shadow);
|
||||
- LIGHTER(Normal, Window, 80);
|
||||
- ADD(Normal, Dark);
|
||||
- GTK(button, Foreground, ACTIVE);
|
||||
- ADD(Inactive, WindowText);
|
||||
- LIGHTER(Normal, WindowText, 50);
|
||||
- ADD(Disabled, Text);
|
||||
- ADD(Disabled, WindowText);
|
||||
- ADD(Inactive, ButtonText);
|
||||
- ADD(Disabled, ButtonText);
|
||||
- GTK(button, Text, NORMAL);
|
||||
- ADD(Disabled, ButtonText);
|
||||
- // special background colors
|
||||
- GTK(Default, Background, SELECTED);
|
||||
- ADD(Disabled, Highlight);
|
||||
- ADD(Normal, Highlight);
|
||||
- GTK(entry, Foreground, SELECTED);
|
||||
- ADD(Normal, HighlightedText);
|
||||
- GTK(entry, Background, ACTIVE);
|
||||
- ADD(Inactive, HighlightedText);
|
||||
- // text color and friends
|
||||
- GTK(entry, Text, NORMAL);
|
||||
- ADD(Normal, ButtonText);
|
||||
- ADD(Normal, WindowText);
|
||||
- ADD(Disabled, WindowText);
|
||||
- ADD(Disabled, HighlightedText);
|
||||
- GTK(Default, Text, NORMAL);
|
||||
- ADD(Normal, Text);
|
||||
- ADD(Normal, WindowText);
|
||||
- ADD(Inactive, Text);
|
||||
- ADD(Normal, HighlightedText);
|
||||
- LIGHTER(Normal, Base, 93);
|
||||
- ADD(All, AlternateBase);
|
||||
- GTK(Default, Foreground, NORMAL);
|
||||
- ADD(All, ToolTipText);
|
||||
- MODIFY(Normal, Text, 100, 100, 100);
|
||||
- ADD(All, PlaceholderText, Light);
|
||||
- MODIFY(Normal, Text, -100, -100, -100);
|
||||
- ADD(All, PlaceholderText, Dark);
|
||||
- SAVE(SystemPalette);
|
||||
- CLEAR;
|
||||
-
|
||||
- // Checkbox and Radio Button
|
||||
- GTK(button, Text, ACTIVE);
|
||||
- ADD(Normal, Base, Dark);
|
||||
- GTK(Default, Background, NORMAL);
|
||||
- ADD(All, Base);
|
||||
- GTK(button, Text, NORMAL);
|
||||
- ADD(Normal, Base, Light);
|
||||
- SAVE(CheckBoxPalette);
|
||||
- SAVE(RadioButtonPalette);
|
||||
- CLEAR;
|
||||
-
|
||||
- // ComboBox, GroupBox, Frame
|
||||
- GTK(combo_box, Text, NORMAL);
|
||||
- ADD(Normal, ButtonText, Dark);
|
||||
- ADD(Normal, Text, Dark);
|
||||
- GTK(combo_box, Text, ACTIVE);
|
||||
- ADD(Normal, ButtonText, Light);
|
||||
- ADD(Normal, Text, Light);
|
||||
- SAVE(ComboBoxPalette);
|
||||
- SAVE(GroupBoxPalette);
|
||||
- CLEAR;
|
||||
-
|
||||
- // Menu bar
|
||||
- GTK(Default, Text, ACTIVE);
|
||||
- ADD(Normal, ButtonText);
|
||||
- SAVE(MenuPalette);
|
||||
- CLEAR;
|
||||
-
|
||||
- // LineEdit
|
||||
- GTK(Default, Background, NORMAL);
|
||||
- ADD(All, Base);
|
||||
- SAVE(TextLineEditPalette);
|
||||
- CLEAR;
|
||||
+ {
|
||||
+ // background color and calculate derivates
|
||||
+ GTK(Default, Background, INSENSITIVE);
|
||||
+ ADD(All, Window);
|
||||
+ ADD(All, Button);
|
||||
+ ADD(All, Base);
|
||||
+ LIGHTER(Normal, Window, 125);
|
||||
+ ADD(Normal, Light);
|
||||
+ ADD(Inactive, Light);
|
||||
+ LIGHTER(Normal, Window, 70);
|
||||
+ ADD(Normal, Shadow);
|
||||
+ LIGHTER(Normal, Window, 80);
|
||||
+ ADD(Normal, Dark);
|
||||
+ ADD(Inactive, Dark)
|
||||
+
|
||||
+ GTK(button, Foreground, ACTIVE);
|
||||
+ ADD(Inactive, WindowText);
|
||||
+ LIGHTER(Normal, WindowText, 50);
|
||||
+ ADD(Disabled, Text);
|
||||
+ ADD(Disabled, WindowText);
|
||||
+ ADD(Disabled, ButtonText);
|
||||
+
|
||||
+ GTK(button, Text, NORMAL);
|
||||
+ ADD(Inactive, ButtonText);
|
||||
+
|
||||
+ // special background colors
|
||||
+ GTK(Default, Background, SELECTED);
|
||||
+ ADD(Disabled, Highlight);
|
||||
+ ADD(Normal, Highlight);
|
||||
+ ADD(Inactive, Highlight);
|
||||
+
|
||||
+ GTK(entry, Foreground, SELECTED);
|
||||
+ ADD(Normal, HighlightedText);
|
||||
+ ADD(Inactive, HighlightedText);
|
||||
+
|
||||
+ // text color and friends
|
||||
+ GTK(entry, Text, NORMAL);
|
||||
+ ADD(Normal, ButtonText);
|
||||
+ ADD(Normal, WindowText);
|
||||
+ ADD(Disabled, HighlightedText);
|
||||
+
|
||||
+ GTK(Default, Text, NORMAL);
|
||||
+ ADD(Normal, Text);
|
||||
+ ADD(Inactive, Text);
|
||||
+ ADD(Normal, HighlightedText);
|
||||
+ LIGHTER(Normal, Base, 93);
|
||||
+ ADD(All, AlternateBase);
|
||||
+
|
||||
+ GTK(Default, Foreground, NORMAL);
|
||||
+ ADD(All, ToolTipText);
|
||||
+ MODIFY(Normal, Text, 100, 100, 100);
|
||||
+ ADD(All, PlaceholderText, Light);
|
||||
+ MODIFY(Normal, Text, -100, -100, -100);
|
||||
+ ADD(All, PlaceholderText, Dark);
|
||||
+
|
||||
+ SAVE(SystemPalette);
|
||||
+ CLEAR;
|
||||
+ }
|
||||
+
|
||||
+ // Label and TabBar Palette
|
||||
+ {
|
||||
+ GTK(entry, Text, NORMAL);
|
||||
+ ADD(Normal, WindowText);
|
||||
+ ADD(Inactive, WindowText);
|
||||
+
|
||||
+ SAVE(LabelPalette);
|
||||
+ SAVE(TabBarPalette);
|
||||
+ CLEAR;
|
||||
+ }
|
||||
+
|
||||
+ // Checkbox and RadioButton Palette
|
||||
+ {
|
||||
+ GTK(button, Text, ACTIVE);
|
||||
+ ADD(Normal, Base, Dark);
|
||||
+ ADD(Inactive, WindowText, Dark);
|
||||
+
|
||||
+ GTK(Default, Foreground, NORMAL);
|
||||
+ ADD(All, Text);
|
||||
+
|
||||
+ GTK(Default, Background, NORMAL);
|
||||
+ ADD(All, Base);
|
||||
+
|
||||
+ GTK(button, Text, NORMAL);
|
||||
+ ADD(Normal, Base, Light);
|
||||
+ ADD(Inactive, WindowText, Light);
|
||||
+
|
||||
+ SAVE(CheckBoxPalette);
|
||||
+ SAVE(RadioButtonPalette);
|
||||
+ CLEAR;
|
||||
+ }
|
||||
+
|
||||
+ // ComboBox, GroupBox & Frame Palette
|
||||
+ {
|
||||
+ GTK(combo_box, Text, NORMAL);
|
||||
+ ADD(Normal, ButtonText, Dark);
|
||||
+ ADD(Normal, Text, Dark);
|
||||
+ ADD(Inactive, WindowText, Dark);
|
||||
+
|
||||
+ GTK(combo_box, Text, ACTIVE);
|
||||
+ ADD(Normal, ButtonText, Light);
|
||||
+ ADD(Normal, Text, Light);
|
||||
+ ADD(Inactive, WindowText, Light);
|
||||
+
|
||||
+ SAVE(ComboBoxPalette);
|
||||
+ SAVE(GroupBoxPalette);
|
||||
+ CLEAR;
|
||||
+ }
|
||||
+
|
||||
+ // MenuBar Palette
|
||||
+ {
|
||||
+ GTK(Default, Text, ACTIVE);
|
||||
+ ADD(Normal, ButtonText);
|
||||
+ SAVE(MenuPalette);
|
||||
+ CLEAR;
|
||||
+ }
|
||||
+
|
||||
+ // LineEdit Palette
|
||||
+ {
|
||||
+ GTK(Default, Background, NORMAL);
|
||||
+ ADD(All, Base);
|
||||
+ SAVE(TextLineEditPalette);
|
||||
+ CLEAR;
|
||||
+ }
|
||||
|
||||
#undef GTK
|
||||
#undef REC
|
27
0019-Fix-tooltip-palette-issue-in-gtk3-theme.patch
Normal file
27
0019-Fix-tooltip-palette-issue-in-gtk3-theme.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 756857b5d05fe85ea93851111fafc430944dbe61 Mon Sep 17 00:00:00 2001
|
||||
From: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
|
||||
Date: Wed, 18 Oct 2023 11:23:20 +0200
|
||||
Subject: Fix tooltip palette issue in gtk3 theme
|
||||
|
||||
The tooltip text doesn't show with right palette when application runs
|
||||
in dark mode using gtk3 theme.
|
||||
|
||||
This patchset removes explicitly setting ToolTipText palette in
|
||||
gtk3theme.
|
||||
|
||||
Pick-to: 6.6 6.5
|
||||
Change-Id: Id90626a377733814c3f32f0bf7e5539097b76dd6
|
||||
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
|
||||
|
||||
diff --git a/src/plugins/platformthemes/gtk3/qgtk3storage.cpp b/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
index bbc70c39a2..22cfabb843 100644
|
||||
--- a/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
+++ b/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
@@ -573,7 +573,6 @@ void QGtk3Storage::createMapping()
|
||||
ADD(All, AlternateBase);
|
||||
|
||||
GTK(Default, Foreground, NORMAL);
|
||||
- ADD(All, ToolTipText);
|
||||
MODIFY(Normal, Text, 100, 100, 100);
|
||||
ADD(All, PlaceholderText, Light);
|
||||
MODIFY(Normal, Text, -100, -100, -100);
|
@ -0,0 +1,40 @@
|
||||
From fd09519bbd4e7ea89b898c7496e7e06980ee9672 Mon Sep 17 00:00:00 2001
|
||||
From: Axel Spoerl <axel.spoerl@qt.io>
|
||||
Date: Thu, 19 Oct 2023 15:19:12 +0200
|
||||
Subject: QGtk3Theme: define light, midlight, mid, dark and shadow colors
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Define color groups used for shading and in order to render specific
|
||||
inactive texts, e.g. menu item text.
|
||||
|
||||
Found-by: Piotr Wierciński <piotr.wiercinski@qt.io>
|
||||
Pick-to: 6.6 6.5
|
||||
Change-Id: I736f5aff1ff5379ce3f78b53e547b0b5f552779f
|
||||
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
|
||||
Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io>
|
||||
|
||||
diff --git a/src/plugins/platformthemes/gtk3/qgtk3storage.cpp b/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
index 22cfabb843..90c0282651 100644
|
||||
--- a/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
+++ b/src/plugins/platformthemes/gtk3/qgtk3storage.cpp
|
||||
@@ -578,6 +578,18 @@ void QGtk3Storage::createMapping()
|
||||
MODIFY(Normal, Text, -100, -100, -100);
|
||||
ADD(All, PlaceholderText, Dark);
|
||||
|
||||
+ // Light, midlight, dark, mid, shadow colors
|
||||
+ LIGHTER(Normal, Button, 125);
|
||||
+ ADD(All, Light)
|
||||
+ LIGHTER(Normal, Button, 113);
|
||||
+ ADD(All, Midlight)
|
||||
+ LIGHTER(Normal, Button, 113);
|
||||
+ ADD(All, Mid)
|
||||
+ LIGHTER(Normal, Button, 87);
|
||||
+ ADD(All, Dark)
|
||||
+ LIGHTER(Normal, Button, 5);
|
||||
+ ADD(All, Shadow)
|
||||
+
|
||||
SAVE(SystemPalette);
|
||||
CLEAR;
|
||||
}
|
@ -57,7 +57,7 @@
|
||||
Name: qt5-qtbase
|
||||
Summary: Qt5 - QtBase components
|
||||
Version: 5.15.11
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
|
||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||
License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
@ -186,6 +186,11 @@ Patch161: 0012-Document-QGtk3Interface.patch
|
||||
Patch162: 0013-Document-QGtk3Storage.patch
|
||||
Patch163: 0014-QGtk3Theme-Improve-fixed-font-delivery.patch
|
||||
Patch164: 0015-QGtk3Theme-Do-not-default-Active-WindowText-to-butto.patch
|
||||
Patch165: 0016-Fix-memory-leak-in-QGtk3Interface-themename.patch
|
||||
Patch166: 0017-Fix-disabled-button-color-in-Linux-x11-wayland.patch
|
||||
Patch167: 0018-Fix-inactive-palette-in-gtk3-theme.patch
|
||||
Patch168: 0019-Fix-tooltip-palette-issue-in-gtk3-theme.patch
|
||||
Patch169: 0020-QGtk3Theme-define-light-midlight-mid-dark-shadow-colors.patch
|
||||
|
||||
# Latest QGnomePlatform needs to be specified to be used
|
||||
Patch200: qtbase-use-qgnomeplatform-as-default-platform-theme-on-gnome.patch
|
||||
@ -491,6 +496,11 @@ Qt5 libraries used for drawing widgets and OpenGL items.
|
||||
%patch -P162 -p1
|
||||
%patch -P163 -p1
|
||||
%patch -P164 -p1
|
||||
%patch -P165 -p1
|
||||
%patch -P166 -p1
|
||||
%patch -P167 -p1
|
||||
%patch -P168 -p1
|
||||
%patch -P169 -p1
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} < 39
|
||||
@ -1176,6 +1186,9 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Nov 14 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.11-6
|
||||
- Backport another upstream (Qt6) fixes and improvements to QGtk3Theme
|
||||
|
||||
* Thu Nov 09 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.11-5
|
||||
- Revert: Fix Qt not showing up emoji by handling emoji font family
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user