Package: release.debian.org
Severity: normal
X-Debbugs-Cc: systemsetti...@packages.debian.org, Debian Qt/KDE Maintainers 
<debian-qt-kde@lists.debian.org>
Control: affects -1 + src:systemsettings
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package systemsettings

[ Reason ]
It contains the following changes:
* Backport upstream commits:
  - Fix accessibility of scrollable areas in systemsettings configuration
  pages.
  - Fix header colors of QWidget based KCMs not updated immediately.
  (kde#495462)

[ Tests ]
- Tested various system settings pages to work correctly and the header
  color applying immediately.

[ Risks ]
Only backport of upstream commits that apply cleanly. Further fixes can
easily be backported or the changes reverted.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing


Thanks!


unblock systemsettings/4:6.3.4-2
diff -Nru systemsettings-6.3.4/debian/changelog 
systemsettings-6.3.4/debian/changelog
--- systemsettings-6.3.4/debian/changelog       2025-04-03 01:01:11.000000000 
+0200
+++ systemsettings-6.3.4/debian/changelog       2025-05-19 23:44:40.000000000 
+0200
@@ -1,3 +1,14 @@
+systemsettings (4:6.3.4-2) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * Backport upstream commits:
+    - Fix accessibility of scrollable areas in systemsettings configuration
+    pages.
+    - Fix header colors of QWidget based KCMs not updated immediately.
+    (kde#495462)
+
+ -- Aurélien COUDERC <couc...@debian.org>  Mon, 19 May 2025 23:44:40 +0200
+
 systemsettings (4:6.3.4-1) unstable; urgency=medium
 
   [ Patrick Franz ]
diff -Nru systemsettings-6.3.4/debian/patches/series 
systemsettings-6.3.4/debian/patches/series
--- systemsettings-6.3.4/debian/patches/series  1970-01-01 01:00:00.000000000 
+0100
+++ systemsettings-6.3.4/debian/patches/series  2025-05-19 23:44:40.000000000 
+0200
@@ -0,0 +1,3 @@
+upstream_89cf0e62_ModuleView-set-AccessibleName-for-ScrollArea.patch
+upstream_e111fd5d_Apply-1-suggestion-s-to-1-file-s-.patch
+upstream_bd4d1799_Fix-header-colors-of-QWidget-based-KCMs.patch
diff -Nru 
systemsettings-6.3.4/debian/patches/upstream_89cf0e62_ModuleView-set-AccessibleName-for-ScrollArea.patch
 
systemsettings-6.3.4/debian/patches/upstream_89cf0e62_ModuleView-set-AccessibleName-for-ScrollArea.patch
--- 
systemsettings-6.3.4/debian/patches/upstream_89cf0e62_ModuleView-set-AccessibleName-for-ScrollArea.patch
    1970-01-01 01:00:00.000000000 +0100
+++ 
systemsettings-6.3.4/debian/patches/upstream_89cf0e62_ModuleView-set-AccessibleName-for-ScrollArea.patch
    2025-05-19 23:41:47.000000000 +0200
@@ -0,0 +1,34 @@
+From 89cf0e629e0fcfd7508d24072a04567ca480e807 Mon Sep 17 00:00:00 2001
+From: Christoph Wolk <cwo....@posteo.net>
+Date: Sat, 8 Feb 2025 19:44:25 +0100
+Subject: [PATCH] ModuleView: set AccessibleName for ScrollArea
+
+The tab stop at the kcm scrollarea can in some cases serve a purpose,
+but is very cryptic to screen reader users as it appears to be non-
+interactable and is only announced with the confusing "LayeredPane".
+
+Instead set an explicit AccessibleName that informs the user of the
+general purpose of the control they are on. QAccessible does not support
+the Atspi role SCROLL_PANE which would be optimal here, and there is no
+clear equivalent, so it has to be done with AccessibleName.
+---
+ app/ModuleView.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/app/ModuleView.cpp b/app/ModuleView.cpp
+index b24f396fd..612f58272 100644
+--- a/app/ModuleView.cpp
++++ b/app/ModuleView.cpp
+@@ -272,6 +272,9 @@ void ModuleView::addModule(MenuItem *item, const 
QStringList &args)
+     auto page = new KPageWidgetItem(moduleScroll, data.name());
+     // Provide information to the users
+ 
++    // set accessible name, or screen reader users will have a cryptic 
"LayeredPane" tabstop
++    moduleScroll->setAccessibleName(i18ndc("systemsettings", "@other 
accessible name for view that can be scrolled", "Scrollable area"));
++
+     if (item->isExternalAppModule()) {
+         auto externalWidget = new ExternalAppModule(KService::Ptr(new 
KService(item->metaData().fileName())));
+         moduleScroll->setWidget(externalWidget);
+-- 
+GitLab
+
diff -Nru 
systemsettings-6.3.4/debian/patches/upstream_bd4d1799_Fix-header-colors-of-QWidget-based-KCMs.patch
 
systemsettings-6.3.4/debian/patches/upstream_bd4d1799_Fix-header-colors-of-QWidget-based-KCMs.patch
--- 
systemsettings-6.3.4/debian/patches/upstream_bd4d1799_Fix-header-colors-of-QWidget-based-KCMs.patch
 1970-01-01 01:00:00.000000000 +0100
+++ 
systemsettings-6.3.4/debian/patches/upstream_bd4d1799_Fix-header-colors-of-QWidget-based-KCMs.patch
 2025-05-19 23:44:40.000000000 +0200
@@ -0,0 +1,40 @@
+From bd4d17996062ad0a78a0157cdc17603ccbf8a0ea Mon Sep 17 00:00:00 2001
+From: Marco Martin <notm...@gmail.com>
+Date: Tue, 27 May 2025 11:53:38 +0200
+Subject: [PATCH] Fix header colors of QWidget based KCMs
+
+If we create a QPalette from scratch for the KCM header,
+we won't be notified anymore about palette changes, so when
+changing the color scheme the PaletteChanged events won't arrive.
+if we instead start form QWidget::palette() and then modify it
+we will get the events and the color scheme changes will be applied
+immediately
+
+BUG:495462
+
+
+(cherry picked from commit 314c6e87bdca262b3ce7e863d7a79657e937f51f)
+
+314c6e87 Fix header colors of QWidget based KCMs
+
+Co-authored-by: Marco Martin <notm...@gmail.com>
+---
+ app/ModuleView.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/app/ModuleView.cpp b/app/ModuleView.cpp
+index d06c24e5a..2b359d448 100644
+--- a/app/ModuleView.cpp
++++ b/app/ModuleView.cpp
+@@ -81,7 +81,7 @@ void CustomTitle::colorsChanged()
+     auto inactive = KColorScheme(QPalette::Inactive, KColorScheme::Header, 
config);
+     auto disabled = KColorScheme(QPalette::Disabled, KColorScheme::Header, 
config);
+ 
+-    QPalette palette = KColorScheme::createApplicationPalette(config);
++    QPalette palette = QWidget::palette();
+ 
+     palette.setBrush(QPalette::Active, QPalette::Window, active.background());
+     palette.setBrush(QPalette::Active, QPalette::WindowText, 
active.foreground());
+-- 
+GitLab
+
diff -Nru 
systemsettings-6.3.4/debian/patches/upstream_e111fd5d_Apply-1-suggestion-s-to-1-file-s-.patch
 
systemsettings-6.3.4/debian/patches/upstream_e111fd5d_Apply-1-suggestion-s-to-1-file-s-.patch
--- 
systemsettings-6.3.4/debian/patches/upstream_e111fd5d_Apply-1-suggestion-s-to-1-file-s-.patch
       1970-01-01 01:00:00.000000000 +0100
+++ 
systemsettings-6.3.4/debian/patches/upstream_e111fd5d_Apply-1-suggestion-s-to-1-file-s-.patch
       2025-05-19 23:44:40.000000000 +0200
@@ -0,0 +1,26 @@
+From e111fd5dca575758b2584fba384fefbef0b468c1 Mon Sep 17 00:00:00 2001
+From: Christoph Wolk <cwo....@posteo.net>
+Date: Tue, 13 May 2025 14:48:38 +0000
+Subject: [PATCH] Apply 1 suggestion(s) to 1 file(s)
+
+Co-authored-by: Fushan Wen <qydwhotm...@gmail.com>
+---
+ app/ModuleView.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/app/ModuleView.cpp b/app/ModuleView.cpp
+index 612f58272..d06c24e5a 100644
+--- a/app/ModuleView.cpp
++++ b/app/ModuleView.cpp
+@@ -273,7 +273,7 @@ void ModuleView::addModule(MenuItem *item, const 
QStringList &args)
+     // Provide information to the users
+ 
+     // set accessible name, or screen reader users will have a cryptic 
"LayeredPane" tabstop
+-    moduleScroll->setAccessibleName(i18ndc("systemsettings", "@other 
accessible name for view that can be scrolled", "Scrollable area"));
++    moduleScroll->setAccessibleName(i18ndc("systemsettings", 
"@info:whatsthis", "Scrollable area"));
+ 
+     if (item->isExternalAppModule()) {
+         auto externalWidget = new ExternalAppModule(KService::Ptr(new 
KService(item->metaData().fileName())));
+-- 
+GitLab
+

Reply via email to